问题标签 [boost-mpl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4125 浏览

c++ - Boost MPL:仅在存在时调用(成员)函数

我有一个具有模板参数 T 的类 A。在某些用例中,类 T 提供了函数 func1(),而在某些用例中 T 不提供它。A 中的函数 f() 应该调用 func1(),如果它存在的话。我认为这应该可以通过 boost mpl 实现,但我不知道如何。这里有一些伪代码:

更好的是其他情况:

0 投票
1 回答
344 浏览

c++ - Boost.flyweight 和 Boost.MPL

我有一个关于享元选项的问题,给出下面的定义,基于http://www.boost.org/doc/libs/1_40_0/libs/flyweight/test/test_basic.cpp

boost::mpl::_1和有什么价值boost::mpl::_2?什么时候分配?

boost::mpl::_1很可能是std::stringboost::mpl::_2应该是size_t?如果属实,如何扣除?我不明白 key_type 是如何选择的。

我已阅读http://www.boost.org/doc/libs/1_41_0/libs/flyweight/doc/tutorial/lambda_expressions.html但这是我第一次接触 Boost.MPL 并且还不够:)

0 投票
1 回答
142 浏览

c++ - 推广还是不推广——这是个问题

此代码在 Visual C++ 11 Developer Preview 中编译得很好,但在 gcc 4.6.1 中无法编译。

如何使其对后者“可编译”?

然后主要是:

0 投票
2 回答
1256 浏览

c++ - 如何将 type 和 mpl::vector 连接成一个新的向量

我使用以下构造来创建类型的 mpl 向量。

到目前为止,这按预期工作。现在我想做的是以下

这不起作用。那么我需要如何更改我的 MetaFunction 结构,它可以同时与 typedef 和 mpl::vector 一起使用?
或者,如果这不可能,如果我将所有类型 typedef 更改为 mpl 向量,是否可以这样做?

0 投票
1 回答
834 浏览

c++ - 如何交换 mpl::vector 的两个元素?

我正在编写一个模板函数,它应该交换 a 的两个元素boost::mpl::vector(类似于std::swap)。困难的部分是在编译期间没有变量的概念。我已经写了一个草稿,但我想知道是否有更好的方法来解决这个问题。

我当前的代码草图从迭代器中提取一个整数索引,并执行一个序列类型的副本,其中元素交换。问题是 - 这可以做得更好:

这个元函数可以像这样使用:

结果是 1,2,4,6,5,3,

0 投票
2 回答
297 浏览

c++ - 使用 boost mpl pop_front

有:

问题是 poped 不等于 boost::mpl::vector< short,int,long,long long > 而是: boost::mpl::v_mask< boost::mpl::vector< char,short,int长长长长>>

我该如何让它返回没有第一个元素的向量?

0 投票
1 回答
759 浏览

c++ - 将 mpl lambda 表达式作为模板参数传递

我正在尝试编写一个类似于 boost::mpl::find_if 的元函数,但不同之处在于它将从末尾开始遍历序列。我收到编译错误,我猜这来自于作为我的元函数参数传递的 mpl::lambda 的计算。对于我做错了什么的任何指示,我将不胜感激。

现在我正在尝试一个懒惰的解决方案(装饰原来的 find_if):

问题是当尝试使用此功能时:

我得到了一些神秘的错误,我猜这些错误来自 lambda 计算:

我已经测试了 rfind_if 的内部结构(没有将 lambda 作为模板参数传递)并且它起作用了,命名为:

产生了正确的结果

我知道我的功能远非高效,但现在我想了解这个问题。之后我会写一个正确的实现。

最好的祝福

0 投票
1 回答
500 浏览

c++ - 获取 mpl 向量的前 M 个元素

我有一个元素boost::mpl::vectorN说:

我希望获得一个M包含my_vector. 所以如果M是 2 我想要一个:

最初我想使用但无法为和erase<s,first,last>找出合适的模板参数。(我正在使用。)但是,我的理解也可以用于任务。解决这个问题的最佳方法是什么?firstlastat_c<...>::typefilter_view

0 投票
1 回答
219 浏览

c++ - 从 MPL 元函数类创建函子

我一直在寻找 MPL 中的一个类,它将从一个表现良好的 MPL 元函数类创建一个函数对象。我手动滚动了这个实现:

一个使用示例是

作为写作的美化版本return 5

由于这个操作看起来很基本,我原以为 MPL 中已经有一个类似的类,但是搜索文档对我没有任何帮助。我错过了什么吗?

0 投票
1 回答
857 浏览

c++ - 使用 mpl::if_、boost::function 和 typedef 来 void 的问题

我是 Boost.MPL 库的新手,有一些“初学者问题”

看看这个样本:

编译时我得到:

这里有什么问题,我该如何解决?

mpl::if_据我了解,编译器仅应评估的选定部分....