ken*_*ytm 13
是的,它们是std::placeholders命名空间内C++ 0x的一部分,来自最新的草案(n3126)§20.8.10.1.3"占位符":
namespace std {
namespace placeholders {
// M is the implementation-defined number of placeholders
extern unspecified _1;
extern unspecified _2;
.
.
.
extern unspecified _M;
}
}
Run Code Online (Sandbox Code Playgroud)
它们实际上包含在TR1(n1836§3.6.4 ; n1455)中bind,它们来自Boost.Bind库.
是的,它们是C++ 0x的一部分.我没有仔细检查TR1规格,但我怀疑它们是在那里添加的(TR1本质上是C++ 03的仅库扩展,因此它不能依赖lambdas),然后,因为它已经存在在TR1中,在C++ 0x中再次删除它是不必要的破坏性,即使你拥有真正的lambda已经不再需要它了.