⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dimension.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
// Boost.Units - A C++ library for zero-overhead dimensional analysis and // unit/quantity manipulation and conversion//// Copyright (C) 2003-2008 Matthias Christian Schabel// Copyright (C) 2008 Steven Watanabe//// Distributed under the Boost Software License, Version 1.0. (See// accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)/** \file    \brief dimension.cpp\detailedTest dimension list manipulation.Output:@verbatim//[dimension_outputlength_dimension  = list<dim<length_base_dimension, static_rational<1l, 1l> >, dimensionless_type>mass_dimension    = list<dim<mass_base_dimension, static_rational<1l, 1l> >, dimensionless_type>time_dimension    = list<dim<time_base_dimension, static_rational<1l, 1l> >, dimensionless_type>energy_dimension  = list<dim<length_base_dimension, static_rational<2l, 1l> >, list<dim<mass_base_dimension, static_rational<1l, 1l> >, list<dim<time_base_dimension, static_rational<-2l, 1l> >, dimensionless_type> > >LM_type      = list<dim<length_base_dimension, static_rational<1l, 1l> >, list<dim<mass_base_dimension, static_rational<1l, 1l> >, dimensionless_type> >L_T_type     = list<dim<length_base_dimension, static_rational<1l, 1l> >, list<dim<time_base_dimension, static_rational<-1l, 1l> >, dimensionless_type> >V_type       = list<dim<length_base_dimension, static_rational<1l, 1l> >, list<dim<time_base_dimension, static_rational<-1l, 1l> >, dimensionless_type> >//]@endverbatim**/// undefine this if you don't want to demangle symbols// need to link with libboost_regex to get demangling functionality#define MCS_USE_DEMANGLING#include <boost/type_traits/is_same.hpp>#include <boost/mpl/assert.hpp>#include <boost/units/detail/utility.hpp>#include "test_system.hpp"namespace mpl = boost::mpl;int main(void){       using namespace boost::units;    BOOST_MPL_ASSERT((boost::is_same<        length_dimension,        mpl::push_front<            dimensionless_type,            dim<length_base_dimension, static_rational<1L, 1L> >        >::type    >));    BOOST_MPL_ASSERT((boost::is_same<        mass_dimension,        mpl::push_front<            dimensionless_type,            dim<mass_base_dimension, static_rational<1L, 1L> >        >::type    >));    BOOST_MPL_ASSERT((boost::is_same<energy_dimension,         mpl::push_front<        mpl::push_front<        mpl::push_front<        dimensionless_type,        dim<time_base_dimension, static_rational<-2L, 1L> > >::type,        dim<mass_base_dimension, static_rational<1L, 1L> > >::type,        dim<length_base_dimension, static_rational<2L, 1L> > >::type>));                                  std::cout << "length_dimension  = "              << simplify_typename(length_dimension()) << std::endl              << "mass_dimension    = "              << simplify_typename(mass_dimension()) << std::endl              << "time_dimension    = "              << simplify_typename(time_dimension()) << std::endl              << "energy_dimension  = "              << simplify_typename(energy_dimension()) << std::endl;                      //[dimension_snippet_1    typedef mpl::times<length_dimension,mass_dimension>::type   LM_type;    typedef mpl::divides<length_dimension,time_dimension>::type L_T_type;    typedef static_root<        mpl::divides<energy_dimension,mass_dimension>::type,        static_rational<2>    >::type    V_type;    //]        BOOST_MPL_ASSERT((boost::is_same<LM_type,         mpl::push_front<        mpl::push_front<        dimensionless_type,        dim<mass_base_dimension, static_rational<1L, 1L> > >::type,        dim<length_base_dimension, static_rational<1L, 1L> > >::type>));    BOOST_MPL_ASSERT((boost::is_same<L_T_type,         mpl::push_front<        mpl::push_front<        dimensionless_type,        dim<time_base_dimension, static_rational<-1L, 1L> > >::type,        dim<length_base_dimension, static_rational<1L, 1L> > >::type>));    BOOST_MPL_ASSERT((boost::is_same<V_type,         mpl::push_front<        mpl::push_front<        dimensionless_type,        dim<time_base_dimension, static_rational<-1L, 1L> > >::type,        dim<length_base_dimension, static_rational<1L, 1L> > >::type>));        std::cout << "LM_type      = " << simplify_typename(LM_type()) << std::endl              << "L_T_type     = " << simplify_typename(L_T_type()) << std::endl              << "V_type       = " << simplify_typename(V_type()) << std::endl;                  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -