C++11~ enable_if C++17~ enable_if_t 이건 사실 위의 enable_if 를 편히 쓸 수 있게 만들어 둔 것이다. enable_if:: type enable_if_t 위 두개는 같은 표현이다 (C++ 17에서는) 에 정의된 클래스 템플릿. 해당 템플릿을 통해 1. 특정한 상황일 때 불리는 overload 된 function을 만들 수 있거나, 2. 특정한 상황일 때 특정한 return type을 가지는 function을 만들 수 있다. enable_if 정의는 아래와 같이 정의되어있다. template struct enable_if {}; // no member "type" when !_Test template struct enable_if { // type is _Ty for ..