promote_mpl_test.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 48 行

CPP
48
字号
// Copyright 2005 Alexander Nasonov.// 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)#include <boost/mpl/at.hpp>#include <boost/mpl/lambda.hpp>#include <boost/mpl/placeholders.hpp>#include <boost/mpl/transform.hpp>#include <boost/mpl/vector.hpp>#include <boost/static_assert.hpp>#include <boost/type_traits/is_same.hpp>#include <boost/type_traits/promote.hpp>namespace mpl = boost::mpl;int main(){    using namespace mpl::placeholders;    typedef mpl::vector< char                       , signed char          // 1                       , unsigned char                       , short int const      // 3                       , unsigned short int                       , int volatile         // 5                       , unsigned int         // 6                       , long                 // 7                       , unsigned long        // 8                       , float const          // 9                       > types;    typedef mpl::transform< types                          , mpl::lambda< boost::promote<_> >::type                          >::type promoted;    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,1>::type, int           >::value ));    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,3>::type, int const     >::value ));    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,5>::type, int volatile  >::value ));    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,6>::type, unsigned int  >::value ));    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,7>::type, long          >::value ));    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,8>::type, unsigned long >::value ));    BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,9>::type, double const  >::value ));    return 0;}

⌨️ 快捷键说明

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