c ++带有大括号的文字初始化指针的错误

时间:2018-04-04 10:36:16

标签: c++ c++11 cmake

我正在学习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)。

1 个答案:

答案 0 :(得分:0)

让cmake编译c ++ 11 ..

配置是在CmakeLists.txt中写下这一行

set (CMAKE_CXX_STANDARD 11)