【发布时间】:2020-01-14 18:19:34
【问题描述】:
使用 C++17,您可以在 main 中进行类模板参数推导,如下例所示:
template<class T = int>
struct X{};
int main()
{
X myX;
}
为什么不允许对数据成员进行模板参数推导?
template<class T = int>
struct X{};
struct Y
{
X myX;
};
int main()
{
Y myY;
}
错误:在没有参数列表 X myX 的情况下无效使用模板名称“X”;
【问题讨论】:
-
不是关于 CTAD,但有些论点是相似的:auto-type members
-
你的例子并没有,呃,推断出任何东西。如果只想使用默认模板参数,写
X<>?