Hi, I am working on the GSoC project, "C++: Implement compiler built-in traits for the standard library traits". I found the following library traits that I am not sure if implementing built-in traits brings reasonable speed up.
* std::is_fundamental * std::is_arithmetic * std::is_scalar * std::is_object * std::is_compound * std::is_scoped_enum For example, std::is_object has no template specializations, but its inheriting class looks complicated. __not_<__or_<is_function<_Tp>, is_reference<_Tp>, is_void<_Tp>>>::type If we define the built-in trait for this trait, we have: (as equivalence of the above code) __bool_constant<__is_object(_Tp)> And __is_object built-in trait should be like: !(type1 == FUNCTION_TYPE || type1 == ...) In this case, could someone tell me which one would be faster? Or, is there no other way to know which but to benchmark? Sincerely, Ken Matsui