VSCode 误报语法错误

2020-11-18 22:01:23 +08:00
 o2hard

我在 mac osx 上用 vscode 写 c++,用的微软官方的 c++扩展,运行参数用的是g++ -std=c++2a。XCode 自带clang,输入g++会自动连接使用clang,我另外下了个gcc/g++,在zshrc中写入alias gcc='gcc-10' alias g++='g++-10',现在输入g++ --version显示的是g++-10 (Homebrew GCC 10.2.0) 10.2.0。我现在写一些 c++17 及以后的语法,比如std::vector arr; 程序编译运行没问题,但会有红色波浪线提示错误( argument list for class template "std::vector" is missing ),而且该段代码编辑器没有语法高亮。换成std::vector<int> arr;之后错误警告就消失了,代码的语法高亮也正确了。这是哪里设置出问题了,需要哪里再另外设置吗?现在的代码语法检测用的好像没有用到最新的std

2733 次点击
所在节点    C++
4 条回复
seasona
2020-11-18 22:20:16 +08:00
std::vector arr;没给模板参数类型是怎么能过编译的,就算是推导指引也得给个迭代器吧
Athrob
2020-11-18 23:20:28 +08:00
std::vector arr;真的能编译通过吗, https://en.cppreference.com/w/cpp/container/vector 这里也没有你说的这种声明啊.
nightwitch
2020-11-18 23:29:09 +08:00
你说 std::vector arr{1,2,3}能编译过我信,std::vector arr;能编译过那我不信。
Meltdown
2020-11-18 23:31:34 +08:00
差点以为新标准都不用指定类型了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/726876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX