C++の基礎 - プリプロセッサ
提供: MochiuWiki : SUSE, EC, PCB
📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
概要
条件付きインクルード
条件付きインクルードを行うには、__has_includeプリプロセッサディレクティブを使用する必要がある。
ただし、__has_includeは、C++ 17以降で利用可能な機能である。
#if __has_include("hoge.h")
#include "hoge.h"
#elif __has_include("piyo.h")
#include "piyo.h"
#endif
- まず __has_include("hoge.h") では、hoge.hファイルの存在を確認する。
- hoge.hファイルが存在する場合は、それをインクルードする。
- hoge.hファイルが存在しない場合は、__has_include("piyo.h") で piyo.hファイルの存在を確認する。
- piyo.hファイルが存在する場合は、それをインクルードする。
※注意
この方法は、コンパイル時にチェックを行う。
実行時のファイル存在チェックではないことに注意する。