2015-04-01 34 views
1

返回类型boost::bind和现在std::bind未指定。为什么std :: bind的返回类型未指定?

unspecified bind

What is the return type of boost::bind?

为什么是它的boost::bind返回类型,现在std::bind是不确定的?为什么它不是boost::functionstd::function

我意识到,目的是通过类型推导指返回类型,但不回答为什么std::bind是特殊的。

如果那只是委员会的兴趣,那么没什么好说的,但是有没有技术上的原因,指定std::bind的返回类型是非常麻烦的,或者没有指定它允许更高效的实现?

+0

我一直以为返回类型是一个类似于'bound_type ',但我从来没有检查,以证实这一点。 – 2015-04-01 18:24:55

回答

4

那么,对于初学者来说,不只是一种返回类型。它取决于传入的参数的类型差异很大。

C++标准为实现者提供了很多灵活性,以确定不同情况如何分解(使用重载和SFINAE)并映射到不同的闭包对象类型。

0

它不升压::功能或std ::功能,因为这些都执行类型擦除,这可能需要一个存储器分配(绑定没有),并且通常不能有函数调用内联。

相关问题