は__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