C++提升绑定值类型

发布于 2024-08-31 00:20:32 字数 592 浏览 7 评论 0原文

我查看文档和源代码,但无法弄清楚如何获取 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_typefirst/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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

≈。彩虹 2024-09-07 00:20:32

哦。没关系,它是 result_type 而不是 value_type

Doh. nevermind, it's result_type rather than value_type.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文