boost::mpl::always的用法探究
在C++元编程中,boost::mpl(Meta-Programming Library)是一个常用于模板元编程的库。其中,boost::mpl::always是一个实用的元函数,它可以将任何类型转换为一个始终返回该类型的函数对象。本文将通过示例程序来深入探究boost::mpl::always的用法。
示例代码如下:
#include <iostream>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/always.hpp>
#include <boost/type_traits/is_same.hpp>
int main()
{
using namespace boost::mpl;
// 将任何类型转换为返回该类型的函数对象
typedef always<int>::type always_int;
typedef always<double>::type always_double;
// 测试是否转换成功
BOOST_MPL_ASSERT((is_same<int, apply<always_int, void>::type>));
BOOST_MPL_ASSERT((is_same<double, apply<always_double, void>: