[C++] void_t
Updated:
개요
- 모든 유형을 void 유형으로 매핑하는 유틸리티 메타 함수
- 멤버 변수/함수의 존재 유무나 표현식의 유효성을 감지하는 데 사용
예제
- 코드
#include <iostream> #include <utility> using namespace std; class Test { public: void func() {} }; template <typename, typename = void> struct has_member_func : false_type {}; template <typename T> struct has_member_func<T, void_t<decltype(declval<T>().func())>> : true_type {}; int main() { cout << has_member_func<int>::value << endl; cout << has_member_func<Test>::value << endl; return 0; }
- 실행 결과
0 1