有没有办法将 lambda 的签名推导为 mpl 序列?
有没有办法将 c++0x lambda 的签名、结果和参数类型推导为 Boost.MPL 序列,例如 boost::mpl::vector
?例如,对于 lambda,
[]( float a, int b ) -> void { std::cout << a << b << std::endl; }
我希望获得 boost::mpl::vector
Is there a way to deduce the signature, result- and parameter-types, of a c++0x lambda as a Boost.MPL sequence, for example a boost::mpl::vector
? For example, for a lambda
[]( float a, int b ) -> void { std::cout << a << b << std::endl; }
I would like to get a boost::mpl::vector<void,float,int>
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
作为“闭包对象”的 C++0x lambda 是函子。所以你可以使用boost.Boost.FunctionTypes来分解它的
operator()
。例子:
C++0x lambdas which are "closure-objects" are functors. So you can use boost.Boost.FunctionTypes to decompose its
operator()
.Example: