【发布时间】:2018-12-31 06:09:16
【问题描述】:
鉴于此示例代码,如何使用pars 调用构造函数来创建Foo2D 对象?
#include <boost/hana/tuple.hpp>
#include <boost/hana/unpack.hpp>
class Foo2D {
public:
Foo2D(int x, int y):m_x(x), m_y(y) {}
private:
int m_x;
int m_y;
};
int main() {
auto pars = boost::hana::make_tuple(10, 20);
Foo2D foo1(10, 20); //my intention
Foo2D foo2 = boost::hana::unpack(pars, Foo2D); //fails
}
【问题讨论】:
-
您反对为此使用 lambda 吗?
-
使用 lambda?
boost::hana::unpack(pars, [](auto&&... args) {return Foo2D(args...);}). -
@Jarod42, r3mus 是的,当然……显然,我对 c++ 元编程还是很陌生。谢谢你这么快的回复!
标签: c++ boost c++14 metaprogramming boost-hana