インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

名前空間に定義している関数の有効範囲内での宣言

C++ 言語の標準規格では、関数宣言が関数定義に含まれている場合、参照された関数は、それを含む関数の名前空間の別のメンバーとして解釈されます。これは、それを含む関数定義が字句的に見て名前空間定義の中に含まれているかいないかは関係ありません。Microsoft® Visual C++® コンパイラーでは、参照された関数はグローバル関数として解釈されます。グローバルとは、どの名前空間にも含まれていないことです。

グローバル有効範囲または名前空間の有効範囲の中で宣言した関数は、インテル® C++ コンパイラーでも Microsoft® Visual C++® コンパイラーでも同じように解釈されます。