//by 鳥哥 c++11判斷某個類是否含有某個成員函式和變數
#include
#include
#include
template
<
typename t>
struct has_member_f1;}
;template
<
typename t>
struct has_member_aa;}
;struct class1
;voidf1(
)};struct class2};
intmain()
else
if( has_member_f1
::value )
std::cout <<
"class2 包含 函式f1"
<< std::endl;
else
//2、判斷是否包含成員變數
if( has_member_aa
::value )
else
if( has_member_aa
::value )
std::cout <<
"class2 包含變數aa"
<< std::endl;
else
return0;
}
執行結果:
class1 包含 函式f1class2 不包含 函式f1
class1 包含變數aa
class2 不包含變數aa
在C 中判斷某個類是否實現了某個介面
有時我們需要判斷某個類是否實現了某個介面 inte ce 比如在使用反射機制 reflection 來查詢特定型別的時候。簡單來說,可以使用type.isassignablefrom方法 1 2 typeof ifoo isassignablefrom bar.gettype typeof ifoo...
C 判斷某個類是否有某個成員函式,如果有則呼叫
有兩個sdk版本,a版本類base有setscalingmode函式,b版本類base無setscalingmode函式,為了同時相容兩個sdk版本,共用一套 常見的是通過巨集隔離,但版本眾多時管理起來會很麻煩,若可先判斷是否含有該函式,若有則呼叫,c 11新增特性解決了這一問題 偽 如果支援set...
javascript 判斷是否為某個資料型別
為何不用其他方法,因為下面的寫法考慮了各種相容性。判斷是否為陣列 isarray function source 判斷是否為日期物件 isdate function o tostring.call o object date o.tostring invalid date isnan o 判斷是否為...