【发布时间】:2018-09-13 21:21:15
【问题描述】:
我正在学习 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)。
【问题讨论】:
-
必答问题...您在构建时启用了 C++11 吗?
-
真可惜.. 我重置了我的 cmakelist 设置。并修复它!谢谢@StoryTeller
-
您的问题看起来好像教科书示例声称除了第一行之外的所有内容都应该导致错误,但我猜这些 cmets 是您的,而不是来自书中