boost-mpl相关内容
在对 mpl::find 执行 mpl::find 之后,是否可以获得 mpl::vector 的偏移量? 换一种说法,我想做以下等价的编译时间: #include #include #include 主函数(){typedef std::vectorv_type;v_type v_int(3);
..
通常,我会使用 boost::mpl::for_each 来遍历 boost::mpl::vector,但这需要一个函子模板函数声明如下: templatevoid operator()(T&){T::staticCall();} 我的问题是我不希望对象 T 被 for_each 实例化.我根本不需要 operator() 中的 T 参数.有没有办法实现这一点,或者 for_each
..
我想做这样的事情: template字符* foo() {//返回一个包含 N 的编译时字符串,相当于做//ostringstream ostr;//ostr
..
我有三个类,它们遵循相同的概念类,但在用于存储的底层数据结构上有所不同.以下面给出的三个类为例. 模板A类{std::vector贮存;//等等};模板A类{boost::dynamic_bitset贮存;//等等};B类{复杂的UDT存储;//等等}; A 类是使用向量的泛型类.为避免使用vector,提供了A 类的完整特化,它使用boost::dynamic_bitset 作为底层
..
我有一个模板类 模板S级{//... 实现}; 以及U、V 和W 类型的一些股票类型实现: typedef boost::mpl::vectoru_types;typedef boost::mpl::vectoru_types;typedef boost::mpl::vectorw_types; 我想用模板参数的所有可能组合来测试类 S, typedef boost::mpl::vect
..
我正在尝试使用Boost MPL和Fusion来计算不包含任何填充的结构的大小.这是我目前的最佳尝试: 实时示例 templateconstexpr std :: size_t sizeof_members(void){使用命名空间std;命名空间mpl = boost :: mpl;命名空间融合= boost :: fusion;//这有效,但仅适用于仅包含4个成员
..
我有一个模板类(CrMultiIndex),它接收一个模板参数,该参数定义了boost multi index(GlobalHash)。我使用c ++ 14 我需要一种将索引转换为标签(n_to_tag)的方法?并在CrMultiIndex ctor或Init函数中循环索引? 我的最初目的是循环索引并在初始化时生成带有typeid(T).name()的标签名称字符串。这样我就可以根据标签名
..
以下示例演示了我的意思: #include #include #include #include #include
..
我正在使用Boost Spirit解析一个非常复杂的语法,而我遇到的是一个具有20多种类型(此处为21种)的变体的问题: namespace eddic {名称空间ast { typedef boost :: mpl :: vector
..
我正在使用 BOOST_FUSION_ADAPT_STRUCT(),我需要检查所有成员的声明方式和顺序是否正确。因此,我首先这样做: template 结构检查器 { static void check() { typedef typename mpl :: accumulate
..
以下代码几乎逐字地从David Abrahams& Co.的《 C ++模板元编程:Boost and Beyond的C ++模板元编程:概念,工具和技术》一书的第9.1.1节中复制而来。 Aleksey Gurtovoy。 唯一的变化是,我希望能够使用常规的Boost模板mpl :: identity从书中更改类型包装器模板。但是,在Microsoft Visual C ++ Expres
..
我有一个mpl :: string的向量。 mpl :: string大小限制为32个元素。有一种方法可以在编译时创建const char *数组 MACRO(z,i,data)数据 。 ............ const char * array [] = {BOOST_PP_ENUM(SIZE,MACRO,mpl_vector)}; 但是我需要在编译时得到一个c
..
我希望能够传递整数或双精度(或字符串)作为模板参数,在某些情况下将结果转换为整数,并将其用作模板参数 这是我尝试过的内容: 模板 类A { //以下工作正常 int fun() { //此函数应在boost mpl中返回int传递给它的类型 // //(例如,其形式可能是“ 123”) 返回std :: stoi(boost :
..
我必须使用不同的向量 mpl :: vector mpl :: vector 我想将它们“串联”成: mpl :: vector 这将允许我准备矢量模板,然后再使用它们。 我的问题有不同的解决方案,但是这种方
..
我希望从boost mpl :: vector中包含的一组类中继承.这可能吗? 具体来说,我希望将test扩展为以mpl :: vector形式传递的任意多个模板参数. template struct Slice { public: virtual void foo(T v) const = 0; }; struct A{}; struct B{}; temp
..
我有一个类型列表,我想从中构造包含两个元素的所有组合的列表.例如: namespace mpl = boost::mpl; typedef mpl::vector typelist; // mpl magic... // the wanted list is equivalent to: typedef mpl::vector, pair
..
我想将mpl::vector中的每个元素乘以int. 首先,使用元函数将int_与int相乘. template struct multiply_scalar { template struct apply { typedef int_ type; }; }; 这是我要拨打的电
..
我有一个对象接口和一个派生对象可能想要支持的开放式接口集合。 //一个对象 类IObject { getAttribute()= 0 } //一个可变对象 class IMutable { setAttribute()= 0 } //可锁定对象 类ILockable { lock()= 0 } //可认证对象 类ICertifiable
..
如果我使用boost :: mpl,请看下面的代码: typedef fold ,set0 ,insert > :: type s; BOOST_MPL_ASSERT_RELATION(size value,==,2); 如何将 s t = boost :: mpl ::
..
我发现这里一些python脚本为具有超过50个条目的列表生成头文件。 但我不能管理生成一个单一的头文件。有人可以向我解释如何使用这些脚本?我也没有在提升文档中找到任何帮助。 任何帮助将不胜感激。 解决方案 重要更新: 一个更好的脚本,只需要一个有效的 python 环境在此答案中对此问题进行了说明。 原始答案 查看我的 answer 到您的问题 以下ba
..