问题标签 [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.
c++ - Boost MPL:仅在存在时调用(成员)函数
我有一个具有模板参数 T 的类 A。在某些用例中,类 T 提供了函数 func1(),而在某些用例中 T 不提供它。A 中的函数 f() 应该调用 func1(),如果它存在的话。我认为这应该可以通过 boost mpl 实现,但我不知道如何。这里有一些伪代码:
更好的是其他情况:
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::string
。boost::mpl::_2
应该是size_t
?如果属实,如何扣除?我不明白 key_type 是如何选择的。
我已阅读http://www.boost.org/doc/libs/1_41_0/libs/flyweight/doc/tutorial/lambda_expressions.html但这是我第一次接触 Boost.MPL 并且还不够:)
c++ - 推广还是不推广——这是个问题
此代码在 Visual C++ 11 Developer Preview 中编译得很好,但在 gcc 4.6.1 中无法编译。
如何使其对后者“可编译”?
然后主要是:
c++ - 如何将 type 和 mpl::vector 连接成一个新的向量
我使用以下构造来创建类型的 mpl 向量。
到目前为止,这按预期工作。现在我想做的是以下
这不起作用。那么我需要如何更改我的 MetaFunction 结构,它可以同时与 typedef 和 mpl::vector 一起使用?
或者,如果这不可能,如果我将所有类型 typedef 更改为 mpl 向量,是否可以这样做?
c++ - 如何交换 mpl::vector 的两个元素?
我正在编写一个模板函数,它应该交换 a 的两个元素boost::mpl::vector
(类似于std::swap
)。困难的部分是在编译期间没有变量的概念。我已经写了一个草稿,但我想知道是否有更好的方法来解决这个问题。
我当前的代码草图从迭代器中提取一个整数索引,并执行一个序列类型的副本,其中元素交换。问题是 - 这可以做得更好:
这个元函数可以像这样使用:
结果是 1,2,4,6,5,3,
c++ - 使用 boost mpl pop_front
有:
问题是 poped 不等于 boost::mpl::vector< short,int,long,long long > 而是: boost::mpl::v_mask< boost::mpl::vector< char,short,int长长长长>>
我该如何让它返回没有第一个元素的向量?
c++ - 将 mpl lambda 表达式作为模板参数传递
我正在尝试编写一个类似于 boost::mpl::find_if 的元函数,但不同之处在于它将从末尾开始遍历序列。我收到编译错误,我猜这来自于作为我的元函数参数传递的 mpl::lambda 的计算。对于我做错了什么的任何指示,我将不胜感激。
现在我正在尝试一个懒惰的解决方案(装饰原来的 find_if):
问题是当尝试使用此功能时:
我得到了一些神秘的错误,我猜这些错误来自 lambda 计算:
我已经测试了 rfind_if 的内部结构(没有将 lambda 作为模板参数传递)并且它起作用了,命名为:
产生了正确的结果
我知道我的功能远非高效,但现在我想了解这个问题。之后我会写一个正确的实现。
最好的祝福
c++ - 获取 mpl 向量的前 M 个元素
我有一个元素boost::mpl::vector
,N
说:
我希望获得一个M
包含my_vector
. 所以如果M
是 2 我想要一个:
最初我想使用但无法为和erase<s,first,last>
找出合适的模板参数。(我正在使用。)但是,我的理解也可以用于任务。解决这个问题的最佳方法是什么?first
last
at_c<...>::type
filter_view
c++ - 从 MPL 元函数类创建函子
我一直在寻找 MPL 中的一个类,它将从一个表现良好的 MPL 元函数类创建一个函数对象。我手动滚动了这个实现:
一个使用示例是
作为写作的美化版本return 5
。
由于这个操作看起来很基本,我原以为 MPL 中已经有一个类似的类,但是搜索文档对我没有任何帮助。我错过了什么吗?
c++ - 使用 mpl::if_、boost::function 和 typedef 来 void 的问题
我是 Boost.MPL 库的新手,有一些“初学者问题”
看看这个样本:
编译时我得到:
这里有什么问题,我该如何解决?
mpl::if_
据我了解,编译器仅应评估的选定部分....