3
考慮使用__has_include()
以下C++代碼1Z:__has_include()和後續的#include之間是否存在爭用條件?
#if __has_include(<optional>)
# include <optional>
# define have_optional 1
#else
# define have_optional 0
#endif
還能有__has_include(<optional>)
和隨後#include <optional>
或不標準的保證無種族行爲之間的競爭條件?例如,在__has_include()
檢查後立即刪除頭文件(不太可能)的情況下,#include
會意外失敗。
是的,我也這麼認爲。該標準沒有提到太多。 http://eel.is/c++draft/cpp.cond#4中的最後一句似乎支持這一點。 – Rakete1111