クラスの型を列挙型にマップしようとしています。一般的にこれを試してはならないことはわかっていますが(設計が悪いため)、私の場合は列挙型を CUDA カーネルのパラメーターとして使用したいと考えています。ホスト オブジェクトをデバイスに渡すことができません。私の問題の背景には十分です。
次のようにして、特定のオブジェクトが特定のクラスのインスタンスであるかどうかを確認しようとします。
if(typeid(object) == typeid(NameSpaceName::ClassName)){...
これで次のコンパイラ エラーが発生します。
error: ‘ClassName’ is not a member of ‘NameSpaceName’
ClassNameによって宣言されます
namespace NameSpaceName{
class ClassName{};
}
完全を期すために、ClassNameは抽象クラスから派生しています。ClassNameこれは?への参照の解決とは何の関係もないと思います。
私の問題は何ですか?