【发布时间】:2020-11-10 14:06:25
【问题描述】:
我在一个简单的类模板中遇到了一些类型推导指南问题,即主函数范围内的实例化问题,但在另一个类中未能做到这一点。
这是一个例子:
template<class T>
struct X
{
X(T&)
{
}
};
struct User
{
X x{1}; // error: invalid use of template-name 'X' without an argument list
};
int main()
{
int i;
auto x = X(i); // OK
(void)x;
}
我有点困惑,为什么会这样以及如何解决这个问题。 有什么想法吗?
【问题讨论】:
-
澄清一下,您希望
X x{1}推导出X<int>? -
您的
X构造函数采用T&而不是T。这似乎与您的问题无关。
标签: c++ c++17 template-argument-deduction