【发布时间】:2017-09-06 00:35:04
【问题描述】:
根据以下文档:C++17 Features In Visual Studio 2017 Version 15.3 Preview,C++17 引入的 if constexpr 语法应与 /std:c++14 编译器开关一起使用。
但是,它不起作用。相反,会生成以下编译器错误:
错误 C4984:'if constexpr' 是 C++17 语言扩展
文档有误吗?
如果是这样,if constexpr 如何在 Visual Studio 2017 15.3 中编译?
【问题讨论】:
-
它说它支持它,它没有声称它在
/std:c++14下得到支持;事实上,它明确将其列为 C++17 功能,那么当您要求使用较旧的标准时,您为什么会期望它呢? -
它说:“[F] 在 /std:c++14 下受支持,带有“警告 C4984:...”,请参阅表下方的参考 [F]。
-
@AlexeyVoytenko:它给你一个 C4984 的“错误”而不是一个“警告”这一事实是否让你认为也许你编译时带有警告作为错误?
-
@NicolBolas 我使用默认设置测试了项目,其中“警告作为错误”已关闭 (/WX-)。
-
呃,他们仍然默认不支持,即使警告级别 4 建议使用它...
标签: c++ visual-studio-2017 c++17