首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造函数的模板参数推导

构造函数的模板参数推导
EN

Stack Overflow用户
提问于 2011-08-07 17:35:17
回答 1查看 3.2K关注 0票数 9

C++0x有没有(或者C++0x在某个时候会有)构造函数的模板参数推演?在An Overview of the Coming C++ (C++0x) Standard中,我看到了以下几行:

代码语言:javascript
复制
std::lock_guard l(m);   // at 7:00

std::thread t(f);       // at 9:00

这是否意味着委派make_foo函数模板最终是多余的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-07 17:38:05

模板参数推导适用于任何函数,包括构造函数。但是您不能从传递给构造函数的参数中推断出类模板参数。不,你也不能在C++0x中这样做。

代码语言:javascript
复制
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_guardthread不是类模板。不过,他们有构造函数模板。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6971904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档