私はC++キーワード「override」を利用するC++プログラムをコンパイルしていました。
Visual Studio 2010で正常にコンパイルしましたが、g++でコンパイルする必要があります。g ++ 4.6のみが使用可能です(「オーバーライド」をサポートするにはg ++ 4.7が必要です)。
本当の解決策はg++4.7(現在行われている)をインストールすることですが、それは私に考えさせられました。キーワードがサポートされているかどうかを確認するためのコンパイル時チェックはありますか?
私は試した:
#ifndef override
#define override
#ifdef BUILD_WINDOWS
#pragma message("The \"override\" keyword is not supported on this compiler! Ignoring it!")
#else
#warning "The \"override\" keyword is not supported on this compiler! Ignoring it!"
#endif
#endif
「オーバーライド」はシンボルではないため、これは機能しません。
コンパイラのバージョンをチェックして、それがキーワードをサポートしているものの1つであるかどうかを確認するよりも、もっと一般的なことをしたいと思います。仮にあったとしても、これはどのように行うことができますか?