在C++怎么用程序判斷一個變量、函數、實例是否為某個類型,以及怎樣得到這個類型的名字并作為字符串輸出
6 回答

慕粉4447226
TA貢獻2條經驗 獲得超0個贊
使用元模板編程可以實現:
template <typename T1,typename T2>
struct IsSame{
static const bool Value=false;
};
template <typename T>
struct IsSame<T>{
static const bool Value=true;
};
如果兩個模板參數相同,那么IsSame會特化為第二種形式,此時Value的值為真。
元模板編程是圖靈完整的,還可以完成很多東西,例如判斷繼承關系、判斷類里面是否有某種符號、判斷類是否有純虛函數、使用c++98判斷表達式類型等等。這些功能都是編譯期實現的,沒有運算負擔。不好的就是有點難學,編譯速度會變慢。樓主可以了解一下boost庫。

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
if(sizeof(int)==sizeof(name))printf("變量name是 int 數據類型");
簡單的數據類型可以,需要先檢查一下你需要判斷的數據類型的字節數各為多少?如果有重復的就比較麻煩啦。例如:float與long就都是4,就看你的需求啦。
- 6 回答
- 0 關注
- 4984 瀏覽
添加回答
舉報
0/150
提交
取消