boost-mpl

    0热度

    1回答

    我想通过使用boost :: mpl :: fold来处理一些模板参数。目前,我仍然坚持Boost提供的样本,即使这对我不起作用。我得到以下错误: ..\src\main.cpp:18:32: error: template argument 2 is invalid ..\src\main.cpp:18:37: error: wrong number of template arguments

    7热度

    3回答

    我有我想要的类型串上的所有类型的执行功能(目前由MPL列表代表---这是甚至接近它一个合理的方式?) 这里的关键是函数只关心类型,而不关心实际数据;它调用该类型的静态函数来检索一些信息,然后将其推入散列表中供以后参考。 但是,据我所知,mpl没有这样做---最接近我能找到的是mpl for_each运算符,但它似乎想要用于每个实际的实例的类型,而不是类型本身。 Loki库有一个“应用”函数,它或多

    0热度

    1回答

    的第一M个元素我有一个与boost::mpl::vector元素N,说: typedef boost::mpl::vector<int,float,double,short,char> my_vector; 我希望获得含my_vector第一M元件的序列。所以,如果M是2我想出来一个: typedef boost::mpl::vector<int,float> my_mvector; 起初

    1热度

    1回答

    我一直在寻找一个MPL类,它将从一个性能足够好的MPL元函数类中创建一个函数对象。我手卷此实现: template <class Lambda, class Result> struct functor { typedef Result result_type; template <typename Type> Result operato

    1热度

    1回答

    我是新来的Boost.MPL库,并有一定的“初学者-问题” 看看这个例子: template < typename F > struct A { typedef boost::function_types::parameter_types<F> P; typedef typename boost::function_types::result_type<F>::type R;

    2热度

    1回答

    我正在学习Boost.MPL,我刚刚开始。所以如果解决方案是明显的,请原谅我。我看这样的例子: #include <boost/mpl/vector.hpp> #include <boost/mpl/for_each.hpp> #include <iostream> using namespace std; struct A { template <class T>

    4热度

    1回答

    我想知道如何获得一些代码来编译,这将决定T函数模板中T的返回值的大小,其中T是一个函数原型。 ​​ 但是它仍然不能编译,因为的sizeof(无效)不是一个有效的操作 - 尽管我试图构建一个if语句,如果类型为void将返回一个大小为0。我对BOOST MPL相当陌生,所以,虽然我一直在浏览文档一段时间,但我不确定如何应用if_或apply_if等其他ifs,并且这些工具甚至可以工作。 谢谢。

    3热度

    1回答

    所以想象我们有一个mpl :: vector我们想要打印(例如cout)它作为这样的字符串:int, string, char。如何用boost :: mpl做这样的事情?

    2热度

    1回答

    下面的代码工作在Visual Studio 2005中,但是当使用g ++ 4.4.5编译给了我一个编译器错误: #include <boost/mpl/if.hpp> #include <boost/mpl/bool.hpp> template<int X> struct A { void f() { typedef boost::mpl::if_<boost::m

    1热度

    3回答

    我想根据boost::mpl::eval_if(或类似的函数)的结果调用一个参数,它可以给出多少个模板参数不是空的。假设我们有一些伪代码如下所示: struct EmptyType { }; template<class arg1=EmptyType, class arg2=EmptyType, class arg3=EmptyType> class my_class { eval