gpt4 book ai didi

c++ - 成员变量的类模板实参推导

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:44 24 4
gpt4 key购买 nike

在 C++17 中,由于类模板参数推导,我可以在下面的示例中使用 Foo 而无需空模板参数括号:

template<typename T = int>
struct Foo{};

int main(){
Foo f; // before C++17 you had to write "Foo<> f;"
}

为什么我不允许对类成员使用相同的语法?

template<typename T = int>
struct Foo{};

struct Foo2{
Foo f{}; ///< error: invalid use of template-name 'Foo' without an argument list
};

int main(){
Foo2 f2;
}

最佳答案

  1. 没有人,IIRC,提出过。
  2. 大概出于同样的原因,我们没有从默认成员初始化器中推断出任何东西:它们并不总是被使用——构造函数可以通过显式指定不同的初始化器来覆盖它们。

关于c++ - 成员变量的类模板实参推导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53638143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com