在Visual Studio Code中,我创建了以下文件:
#include <iostream>
using namespace std;
template <auto value> void g() { // requires c++17
cout << "g " << value << endl;
}
int main() {
g<10>(); // deduces int; requires c++17
}
在编辑器中,前一行中的“g”有一个红色下划线,错误信息显示:
no instance of function template "g" matches the argument list
template<<error-type> value> void g()
我想这是因为代码使用了C ++ 17中引入的新功能。如何使用C ++ 17进行错误波动机制?
注意:我使用带有以下设置文件的运行代码扩展从Visual Studio代码中运行代码:
{
"code-runner.executorMap": {
"cpp": "clang++-5.0 -std=c++17 $fullFileName && ./a.out"
}
}