Template 코드를 처음 작성하면 타입에 따라 다른 코드를 실행하고 싶어지는 순간이 자주 옵니다.예를 들어 숫자 타입은 std::to_string으로 처리하고, std::string은 size를 함께 출력하고, std::vector는 front 값을 읽고 싶은 식입니다.C++17 이전에는 이런 분기를 SFINAE, tag dispatch, partial specialization으로 풀어야 하는 경우가 많았습니다.C++17의 if constexpr는 이런 compile-time branch를 함수 본문 안에서 더 직접적으로 표현할 수 있게 해줍니다. if constexpr의 핵심은 조건이 compile time에 결정되면 선택되지 않은 branch가 해당 template instantiation에서 ..