Re: [問題] gcc -std=c++98 的 error
※ 引述《photon3108 (John)》之銘言:
: 其實我有點不了解的是,這個選項可以做到:
: (standard c++ 的版本是 98 or later)
: a. 符合 standard c++ 的功能,都可以使用。
: b. 不符合 standard c++ 的功能,都不允許編譯通過。
: 可以做到嗎?
目前最標準的 C++ 是 C++03,
但是 C++03 還是沒有納入 C99,
正式納入 C99 的是 C++0x (應該已經確定是 09),
但是這個標準還沒出來,
所以你下這種選項會發生什麼事情還是沒有一定。
: 另外,有一個疑問是,程式內容沒有使用寬字元,也沒有使用這兩個 functions,
: (所以應該也沒有使用到 C99),為什麼會跳出這些 errors?,這個問題只有我遇
: 到嗎?,如果是的話,是不是我的電腦有問題。
不是你的電腦有問題,
應該是某些 header (像是 iostream) 的內部實作會 include 一些 file,
然後 call 一些 function,
但是它 include 的 file 會因為 -std=c++98 設了一些 macro,
使得一些 function 宣告式被條件式編譯過濾掉,
就會出現這類 error;
這應該是 release library 的人沒測過 -std=c++98 就放出來的緣故,
因為大部分 default 就是 -std=gnu++98。
靠 compiler 檢查標準畢竟不是一個辦法,
還是自己多看書搞清楚自己寫的每一行是不是標準才是正途,
因為實務上大家就是喜歡用一些 compiler 提供的 extensions,
特別是 C99 混搭 C++98 這一項。
--
Ling-hua Tseng (uranus@tinlans.org)
Department of Computer Science, National Tsing-Hua University
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://www.tinlans.org
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.110.179
※ 編輯: tinlans 來自: 118.160.110.179 (04/10 19:16)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章