class_type_transform.cpp

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

CPP
63
字号
// (C) Copyright Tobias Schwinger//// Use modification and distribution are subject to the boost Software License,// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).//------------------------------------------------------------------------------#include <boost/type_traits/is_same.hpp>#include <boost/type_traits/add_pointer.hpp>#include <boost/mpl/assert.hpp>#include <boost/mpl/at.hpp>#include <boost/mpl/placeholders.hpp>#include <boost/mpl/always.hpp>#include <boost/function_types/components.hpp>#include <boost/function_types/parameter_types.hpp>using namespace boost;namespace ft = function_types;using boost::mpl::placeholders::_;class C; typedef C (C::*mem_func_ptr)();class X;BOOST_MPL_ASSERT((  is_same< mpl::at_c<     ft::components<mem_func_ptr, add_pointer<_> >  ,1 >::type, C* >));BOOST_MPL_ASSERT((  is_same< mpl::at_c<     ft::components<mem_func_ptr, add_pointer< add_pointer<_> > >  ,1 >::type, C** >));BOOST_MPL_ASSERT((  is_same< mpl::at_c<     ft::components<mem_func_ptr, mpl::always<X> >  ,1 >::type, X >));BOOST_MPL_ASSERT((  is_same< mpl::at_c<     ft::parameter_types<mem_func_ptr, add_pointer<_> >  ,0 >::type, C* >));BOOST_MPL_ASSERT((  is_same< mpl::at_c<     ft::parameter_types<mem_func_ptr, add_pointer< add_pointer<_> > >  ,0 >::type, C** >));BOOST_MPL_ASSERT((  is_same< mpl::at_c<     ft::parameter_types<mem_func_ptr, mpl::always<X> >  ,0 >::type, X >));

⌨️ 快捷键说明

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