【发布时间】:2014-06-23 12:58:01
【问题描述】:
我想将绑定类模板包装到一个单独的命名空间中:
namespace my_space {
template<typename... R> using bind = std::bind<R...>;
}
并得到一个错误:
error: 'bind<R ...>' in namespace 'std' does not name a type.
我怎么能这样做?一个小例子可以找到here。
【问题讨论】:
-
你为什么要这样做?
-
可以在
std::bind和boost::bind之间进行选择,并始终在您自己的命名空间中包含所需的。 -
@user1810087 随机陷阱:不要将
boost::bind与std::function混合使用,反之亦然。库代码中存在一些潜在的有害专业化! -
@Alex,谢谢你的提示。我已经知道了,并在命名空间(和其他一些)中包装函数和绑定。我用它来避免this 错误...