C++0x 是否具有(或者 C++0x 在某个时间点将会具有)构造函数的模板参数推导?在即将推出的 C++ (C++0x) 标准概述,我看到了以下几行:
std::lock_guard l(m); // at 7:00
std::thread t(f); // at 9:00
这是否意味着委托make_foo
函数模板终于多余了?
模板参数推导适用于任何函数,包括构造函数。但是您无法从传递给构造函数的参数中推断出类模板参数。不,你不能这样做
C++0x 也可以。
struct X
{
template <class T> X(T x) {}
};
template <class T>
struct Y
{
Y(T y) {}
};
int main()
{
X x(3); //T is deduced to be int. OK in C++03 and C++0x;
Y y(3); //compiler error: missing template argument list. Error in 03 and 0x
}
lock_guard
and thread
不是类模板。不过他们有构造函数模板。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)