数週間前、奇妙なエラー メッセージに関するこの質問を投稿しました。原因は、< トークンの不適切な解析でした。この問題は、"template" 曖昧さ回避キーワードを使用することで解決されました。
しかし、予想外の醜い驚きが見つかりました。テンプレートの曖昧さ回避ツールは c++11 ですが、VS2008 をサポートする必要があり、サポートしていません。つまり、基本的に、Windows ではコンパイルできるが Linux ではコンパイルできないものから、Linux ではコンパイルできるが Windows ではコンパイルできないものへと移行しました。
解決する方法はありますか?具体的には
- Windows コンパイラには、この c++11 コンストラクトを有効にするための魔法のオプションがありますか、または
- クロスコンパイラでもあるあいまいさを解決するための古いC ++標準内の代替方法があります。または
- プリプロセッサを使用する必要がある場合、2 つのコンパイラを区別するためのプリプロセッサ定数 (存在する場合) は何ですか (gcc はもう一方です)。