我知道#error
指令工作至少有GCC和MSVC是#error指令跨平臺和交叉編譯
#if !defined(__cplusplus)
#error C++ compiler required.
#endif
但它是在一般的跨平臺和交叉編譯器?它可能是某個標準的一部分嗎?
PS。因爲即使查看GCC和MSVC手冊中給出的示例,也可以看到不同之處。雖然它可以用引號或不用引號,但它讓人感到難過,它可能是某種編譯器的依賴。
GCC例如
#error "Won't work on ..." // quotes here
MSVC例如
#error C++ compiler required. // no qutes
我不知道有一個在問這個因爲似乎沒有被重複任何傷害。當然,這個參考很容易找到。但是,SO的目標是成爲一個全面的問答庫,從這個意義上說,這個問題是有貢獻的。 – Bathsheba
_「它可能是某種標準的一部分嗎?」是的,C和C++語言標準,通過它們的簡單查找/ grep將會顯示出來。我們是否真的需要一個規範的線程來處理每個微不足道的「我可以做X?」人們想到的類型問題?我明白你的意思,但肯定需要在某個地方有一個臨界點。 –
這是標準的,但它不是一個宏。 – melpomene