Open taishi-matsumura opened 5 years ago
ill-formed(不適格)
ってなんぞ?と思って調べていたら大変なサイトに辿り着いてしまいました。。。
https://qiita.com/akinomyoga/items/592e5a3b8438a0c8556b
プロジェクトのプロパティ→C/C++→詳細設定→インクルードの表示 を「 はい」にしてSoundsManager.cppをコンパイルしてみたところ、やはり <typeinfo>
がインクルードされていませんでした。
なぜVS2017でコンパイル通っていたかは不明です。
不具合概要
Visual Studio 2019でビルドすると、SoundsManager.cppでコンパイルエラーが発生する。
内容は
C2678 二項演算子 '==': 型 'const type_info' の左オペランドを扱う演算子が見つかりません (または変換できません)
とあるが、どうやらtype_info
が正しく認識できていない模様。原因
これかな?
typeid を使用する前にヘッダ <typeinfo> がインクルードされていなければなりません (このヘッダがインクルードされていない場合、キーワード typeid のすべての使用がプログラムを ill-formed にします)。
参考 : https://ja.cppreference.com/w/cpp/language/typeid