我正在用这个具有这个头文件的C++学习书。当我试图运行一个简单的“你好,世界!”程序编译器抱怨并给我这个输出。我正在使用最新的macOS。有人能帮帮我吗?
[Running] cd "/Users/Ramsan/Praxis/" && g++ yup.cpp -o yup && "/Users/Ramsan/Praxis/"yup
In file included from yup.cpp:1:
/Users/Ramsan/std_lib_facilities.h:71:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using size_type = typename std::vector<T>::size_type;
^
/Users/Ramsan/std_lib_facilities.h:101:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using size_type = std::string::size_type;
^
/Users/Ramsan/std_lib_facilities.h:218:73: error: expected '(' for function-style cast or type construction
inline int randint(int min, int max) { return uniform_int_distribution<>{min, max}(get_rand()); }
~~~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/Ramsan/std_lib_facilities.h:227:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Value_type = typename C::value_type;
^
/Users/Ramsan/std_lib_facilities.h:230:18: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Iterator = typename C::iterator;
^
4 warnings and 1 error generated.
[Done] exited with code=1 in 0.795 seconds发布于 2021-12-26 10:35:17
如果您遵循关于为macOS C++开发设置clang的vscode教程,您将遇到设置默认构建任务的问题。
本教程指导您生成一个tasks.json,然后让您用自己的示例替换内容。这个初始任务使用C++17编译。
然后,它将指导您生成用于调试的launch.json。此时发生的情况是调试器任务在tasks.json中生成自己的任务,并将其设置为默认值。
这个新的默认任务缺少用C++11/14/17编译的args,std_lib_facilities.h需要C++11。当vscode运行构建时,它使用了错误的任务。
https://stackoverflow.com/questions/69903682
复制相似问题