[정리] Traits 정리


[정리] Traits 정리

C++ 표준 type traits 1. <type_traits> is_pointer, is_array, extent(배열 크기), remove_pointer, result_of/invoke_result (구현 방식이 다름) #include <iostream> #include <type_traits> using namespace std; template<typename T> void foo(T a) { typename remove_pointer<T>::type n; // type을 얻을 때 typename ...::type 이라고 써야 하는데 불편하다. 이 때 using을 사용하자. template<typename T> using remove_pointer_t = typename remove_pointer<T>::type; // 이렇게.... C++ 14부터는 제공된다. bool b = is_pointer<T>::value; } int main() { int n = 0; foo(&n...


#extent #invoke #pointer #remove_pointer #template #traits #type #템플릿

원문링크 : [정리] Traits 정리