スタッフのブログです。個以上あるコメントは受け付けない設定になってます。CPP(GCC)の独自拡張#include_next指令」このドキュメントは簡単な概要と例だけなので、ちょっと複雑なケースになると、この挙動は仕様なのか?バグなのか?という判断が難しくなります。取り上げられた疑問とほぼ同じものでした。order?この疑問を単純化して解説した後、私なりの解釈を説明します。独自のインクルードファイルが含まれるディレクトリ)、sys-include-dir(システムのインクルードファイルが含まれるディレクトリ)の順にディレクトリを検索するとします。それぞれのディレクトリには、以下のようなファイルが含まれています。limits.h少し見辛いですが、各ファイルの内容は以下の通りです。(不要なインクルードガードや定義等は全て省略しています。sys-include-dir/limits.hという順番になると考えました。採用されると考えたからです。実際に組み込まれたファイルは、以下のようになりました。無限ループにならずにインクルードはできているので、目的は達成できているのですが、なんとなくモヤモヤします。バグでは?という結論でした。回インクルードされることを想定している感じなので、バグとも考えにくいです。仕様通りの挙動のようです。指令行が記述されたファイル)が、何番目の検索パスで見つかったファイルなのか?ということです。私が納得した検索手順の説明は、以下のようになります。カレントディレクトリ(.)から検索、発見。カレントディレクトリで発見、スルー。