【发布时间】:2017-10-16 13:51:41
【问题描述】:
我的 Visual Studio 2017 无法识别此代码中的类型推导指南并且无法编译:
template<typename T>
class Example{
public:
Example(T& pVal)
:val(pVal){}
T& val;
};
//type deduction guide for Example constructor
template<typename T>
Example(T&)->Example<T>;
尽管,根据我的sources,这应该是 C++17 类型推导指南的正确语法,并且它定义在与它应该指导的类相同的范围内。
如何修改我的 Visual Studio C++ 编译器以识别此功能?
【问题讨论】:
-
您是否检查了 C++1z 对您的 Visual Studio 版本的支持?编译器必须添加功能。他们不会神奇地意识到新的标准修订。
-
Case and point: 类模板的模板参数推导 状态 - 否。
-
这是official documentation 和(通常是最新的)page from cppreference
-
但显然有些编译器已经支持这些特性。我可以修改 Visual Studio 以使用这些编译器吗?
-
为什么投反对票?我不来 stackoverflow 是因为我知道它是如何工作的,而是因为我需要一些帮助。这不是您可以轻松查找的主题。我对编译器不太了解,对Visual Studio的开发也不太了解。这就是为什么我在这里问。这就是它的用途。
标签: c++ visual-studio-2017 c++17 type-deduction template-argument-deduction