1
我想知道我怎麼可以做以下的C#代碼在C++空類檢索的基本類型
object data;
private T GetJsonData<T>(String node)
{
Type type=typeof(T);
Type nType=Nullable.GetUnderlyingType(type);
if(null!=nType)
{
if(node=="")
return default(T);
return (T)Convert.ChangeType(data,nType);
}
}
我覺得std
命名空間應該有一些類似的方法可以做同樣的,但我不能找一個例子來做一些如上所述的事情。
我推薦閱讀[如何問](http://stackoverflow.com/help/how-to-ask),告訴我們至少你到目前爲止所嘗試過的以及你在哪裏奮鬥。 –
C++沒有這種由c#提供的類型反射。最接近的想法是[type traits](http://en.cppreference.com/w/cpp/types)恕我直言。 –
@πάνταῥεῖ不,這是可行的:基本類型(int,long,...)的模板專門化,然後對於其他類型,執行'Convert.ChangeType'的操作:創建和使用類似' IConvertible',類型'T'必須有,並且解析字符串......考慮如何在C++中完成模板,您甚至不需要該接口。你可以直接使用'T T.Parse(std:string)'方法 – xanatos