4
在C++/CLI代碼中,我需要檢查類型是否是特定的泛型類型。在C#這將是:如何檢查C++/CLI中的泛型類型?
public static class type_helper {
public static bool is_dict(Type t) {
return t.IsGenericType
&& t.GetGenericTypeDefinition() == typeof(IDictionary<,>);
}
}
但CPP ++ \ CLI不相同的方式工作,編譯器顯示了語法錯誤:
class type_helper {
public:
static bool is_dict(Type^ t) {
return t->IsGenericType && t->GetGenericTypeDefinition()
== System::Collections::Generic::IDictionary<,>::typeid;
}
};
,我覺得最好的辦法是比較喜歡這樣的字符串:
class type_helper {
public:
static bool is_dict(Type^ t) {
return t->IsGenericType
&& t->GetGenericTypeDefinition()->Name == "IDictionary`2";
}
};
有沒有人知道更好的方法?
PS: 它是在C++ \ cli中typeof(typeid)的限制還是我不知道「正確的」systax?
「編譯器顯示了語法錯誤」 - 是什麼語法錯誤? –
對不起,我沒有第一次說。它是: 1> test.cpp(4):錯誤C2059:語法錯誤:',' –