[英]Unexpected result when initializing variable in C++ using curly braces
我正在使用 atom 練習 C++ (我很新)。 我剛剛學會了初始化變量,如下所示:
#include <iostream>
using namespace std;
int main() {
int myInt {};
return 0;
}
當我在 codelite 中構建和運行以前的代碼時,我沒有收到任何錯誤。 但是,如果我使用我的 MacBook 終端 (zsh) 編譯我的 atom 文件 dailyPractice10.cpp,我會收到以下錯誤:
dailyPractice10.cpp:7:12: error: expected ';' at end of declaration
int myInt {};
^
;
1 error generated.
我正在使用以下命令在終端上編譯它:
g++ -o dailyPractice10 dailyPractice10.cpp(編譯)
./dailyPractice10(運行程序)
有沒有人有任何反饋,為什么這段代碼在 codelite 中運行但不在終端中編譯?
因為這個特性是從 c++11 添加的。
如果您想嘗試以下命令。它將起作用。
$ g++ -std=c++0x -o dailyPractice10 dailyPractice10.cpp
解決此問題的關鍵是在構建代碼時設置 C++11(或更高版本)標准。 在IDE的console選項卡中,報錯前生成如下output。 請注意,在構建代碼時沒有定義標准:
make all Building file: ../1.cpp Invoking: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"1.d" -MT"1.o" -o "1.o" "../1.cpp"
我們需要在 g++ 命令中添加--std=c++1x標志。 以下解決方案適用於使用 Eclipse IDE 和 MacOSX C++ 編譯器的解決方案:
在“其他標志”文本框中,編輯文本,使其如下所示:
-std=c++17 -c -fmessage-length=0
如果您打算使用任何其他 c++ 標准,請將“c++17”替換為您選擇的標准(例如 c++20)。
應用更改。 運行 Clean,然后再次構建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.