场景:
这种问题一般可能是哪块少写了一个“}”
。
还有小概率可能就是你的C++标准库是C++98或者更早的,这种不支持非内置类型的初始化列表写法。
缺少}的情况
可以看到我们的test1方法少些了一个}就会导致后面的所有函数都报错。这就需要我们细心检查一下咯。
解决方案
自己检查一下第一行报错的行号附近的代码那块少些了一个}。
C++标准不支持
当你的C++标准是C++98时,C++98的初始化列表不支持非内置类型的初始化列表方法。具体可见如下代码
#include <iostream> #include <vector> #include <map> using namespace std; int main() { int a[] = { 1, 2, 3 }; int b[] {1, 2, 3}; vector<int> v{1,5,5}; map<int, float> m{{1, 2.f}, {2, 3.2f}}; return 0; }
编译结果:
解决方案
那么这种情况下你的非内置类型变量就只能使用其他初始化方式了
C++常见错误
fatal error C1189: #error: STL1003: Unexpected compiler, expected C++ compiler
error C2041: illegal digit ‘9‘ for base ‘8‘ | error C2059: syntax error: ‘bad suffix on number‘
Error:QSqlDatabase: QMYSQL driver not loaded (Qt+C++ 找不到mysql的驱动)
Qt5Error:msvc-version.conf loaded but QMAKE_MSC_VER ins‘t set
Error:E0415 no suitable constructor exists to convert from “int“ to “Rational“
Error:E0415 no suitable constructor exists to convert from “int“ to “Rational“