コンパイラ警告 (レベル 4) C4464
相対インクルード パスに '..' が含まれています
#include ディレクティブに、'..' 親ディレクトリ指定子を含むパスが存在します。
解説
Visual Studio 2015 Update 1 以降のコンパイラは、'..' パス セグメントを含むインクルード ディレクティブを検出して警告を生成できます (有効になっている場合)。 この方法で記述されたコードは通常、プロジェクトの相対パスが正しく使用されていないためにプロジェクトの外部に存在するヘッダーをインクルードすることを目的としています。 そのために、プログラマが意図したものとは異なるソース ファイルをインクルードしてプログラムがコンパイルされる危険性や、これらの相対パスを他のビルド環境に移植できない危険性があります。 それについて具体的な警告はありませんが、親ディレクトリのパス セグメントを使用してプロジェクトのインクルード ディレクトリを指定することは避けるようお勧めします。
この警告は Visual Studio 2015 Update 1 で新たに追加されたものであり、既定では無効になっています。 既定でオフになっているすべての警告を有効にするには /Wall を、C4464 をレベル n の警告として有効にするには /wn4464 を使用します。 詳細については、「既定で無効になっているコンパイラ警告」を参照してください。 コンパイラのバージョン別の警告を無効にする方法は、「コンパイラのバージョン別のコンパイラの警告」を参照してください。
例
'..' パス セグメントを使用するソース コード ファイルは、 /Wall オプションが指定されたときに、この警告がトリガーされる可能性があります。
#include "..\headers\C4426.h" // emits warning C4464
// To fix this issue, specify only the header file name, and add
// the absolute path to 'headers\' to your project's include directories
#include "C4426.h"