我正在学习c ++的新知识。 在我的教科书中,有一个非常简单的例子。
int* ip = nullptr; // (ok)
int* ip1{}; // (error)
int* ip2{nullptr}; // (error)
unique_ptr<double> dp{new double}; // (error)
但是我在构建它时遇到了这个错误。
/Users/bsdo/projects/CPlus/modernbook/include/basis.cpp:81:30: error: expected ';' at end of declaration
unique_ptr<double> dp{new double};
^
;
In file included from /Users/bsdo/projects/CPlus/modernbook/main.cpp:2:
/Users/bsdo/projects/CPlus/modernbook/include/basis.cpp:81:30: error: expected ';' at end of declaration
unique_ptr<double> dp{new double};
^
;
/Users/bsdo/projects/CPlus/modernbook/main.cpp:10:13: error: expected ';' at end of declaration
int* ip1{nullptr};
^
;
为什么只有花括号文字抛出错误?
我的环境是Mac book pro 2015,Cmake-3.11,Apple LLVM 9.1.0版(clang-902.0.39.1)。
答案 0 :(得分:0)
让cmake编译c ++ 11 ..
配置是在CmakeLists.txt中写下这一行
set (CMAKE_CXX_STANDARD 11)