C++提升绑定值类型
我查看文档和源代码,但无法弄清楚如何获取 boost 绑定函子的返回值类型。 我试图完成以下任务:
35 template<typename T,size_t N, class F>
36 boost::array<typename F::value_type, N> make_array(T (&input)[N], F unary) {
37 boost::array<typename F::value_type, N> array;
38 std::transform(input, input + N, array.begin(), unary);
39 return array;
40 }
其中 F 可以是绑定函子。上面的方法不起作用,因为函子没有 value_type。就此而言,就返回值而言,是否存在一元/二元函子的标准接口。
解决方案:它应该是result_type
。对于二进制函数,还定义了等效的 argument_type
和 first/second_argument_type
谢谢
I look in documentation and source code but cannot figure out how to get return value type of boost bind functor.
I am trying to accomplish following:
35 template<typename T,size_t N, class F>
36 boost::array<typename F::value_type, N> make_array(T (&input)[N], F unary) {
37 boost::array<typename F::value_type, N> array;
38 std::transform(input, input + N, array.begin(), unary);
39 return array;
40 }
where F can be bind functor. the above does not work because functor does not have value_type. for that matter, is there standard interface for unary/binary functor as far as return value.
solution: it should be result_type
. also equivalent defined are argument_type
and first/second_argument_type
for binary functions
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
哦。没关系,它是
result_type
而不是value_type
。Doh. nevermind, it's
result_type
rather thanvalue_type
.