반응형
- 기존 한계 사항:
std::pair
같은 템플릿 클래스에서 타입을 명시적으로 지정해야 했습니다.- 명시적 타입 사례:
std::pair<std::string, int>
- 명시적 타입 사례:
- 타입이 긴 경우, 코드가 장황해졌습니다.
-
C++17
부터 템플릿 클래스에서 자동으로 타입을 추론할 수 있는 기능(CTAD
) 이 도입되었습니다. -
cpp
#include <iostream> #include <string> #include <utility> using namespace std::string_literals; // std::string 리터럴 사용 int main() { std::pair p1{"one"s, 1}; // 타입을 직접 지정하지 않아도 std::pair<std::string, int>로 자동 추론 // std::make_pair 대신 CTAD를 활용해 더 간결한 코드 작성 가능. std::pair p2{"two"s, 2}; // make_pair 사용하는 코드 // std::pair p2 = std::make_pair("two"s, 2); std::cout << p1.first << ", " << p1.second << '\n'; std::cout << p2.first << ", " << p2.second << '\n'; return 0; }
- 💡
CTAD
덕분에std::pair<std::string, int>
를 직접 명시할 필요 없이 간결한 코드 작성 이 가능합니다.
- 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄
- 일부 모바일 환경에서는 ❤️ 버튼이 보이지 않습니다.
728x90
반응형
'C C++' 카테고리의 다른 글
C++17 if constexpr 조건부 컴파일 (0) | 2025.03.15 |
---|---|
C++17 구조적 바인딩 (Structured bindings) (0) | 2025.03.15 |
C++14 문자열 리터럴과 사용자 정의 리터럴 ("hello"s) (0) | 2025.03.15 |
C++17 if 문 변수 선언 (if with initializer) (0) | 2025.03.15 |
doctest : 기능이 풍부한 가장 빠른 C++11/14/17/20/23 단일 헤더 테스트 프레임워크 (0) | 2025.03.15 |