datatype *x;//where datatype is a class defined earlier;
//...
if (isDataType(x[0]))//test whether x[0] belong to datatype defined.
//do something
是否有任何C ++功能可以像上面那样做?
答案 0 :(得分:6)
使用std::is_same
:
#include <type_traits>
if ( std::is_same<datatype, decltype(x[0])>::value ) {
}
答案 1 :(得分:1)
bool isDataType(const datatype&) { return true; }
template<typename T> bool isDataType(const T&) { return false; }
可能不是你真正想要的......