if constexpr1 [C++ 17] 템플릿 특수화보다 사용하기 좋은 if constexpr 함수 템플릿을 작성할 때 특정 타입일 경우 다른 행동을 정의하고 싶다. 이럴 때 템플릿 특수화를 사용했다. 그러나 C++ 17부터 if constexpr을 사용해서 타입에 따른 행동을 정의할 수 있다. 아래의 조건식은 타입 T가 MyClass 타입과 동일한지 판별한다. template void Func() { if constexpr (std::is_same_v) { // Do something... } } 위의 if문에서 컴파일 타임에 조건식이 true인지 false인지 판별한다. 따라서 아래와 같이 조건식에 변수는 올 수 없다. 컴파일 타임에 알 수 있는 결과값이여야 한다. template void Func() { int val = 3; if constexpr (val == 3) // compile e.. 2021. 1. 1. 이전 1 다음