Modern C++ : std::Attributes (11, 14, 17, 20)
std::Attributes 개요C++ Attributes는 코드에 메타데이터를 추가하는 표준화된 방법을 제공합니다. 이 메타데이터는 컴파일러가 경고를 생성하거나, 코드를 최적화하거나, 특정 규칙을 강제하는 데 사용될 수 있습니다. 속성은 [[attribute]] 구문을 사용하여 지정됩니다. C++ 버전별 주요 키워드 도입 시기C++11: [[noreturn]], [[carries_dependency]]C++14: [[deprecated]]C++17: [[fallthrough]], [[nodiscard]], [[maybe_unused]]C++20: [[likely]], [[unlikely]], [[no_unique_address]] 내용 설명[[nodiscard]]: 함수의 반환 값을 무시해서는 안 됨을..
2025. 10. 10.
Modern C++ : Type Traits 2 (11, 14, 17, 20)
Type Traits 2개요타입 특성(Type Traits)은 컴파일 시간에 타입에 대한 정보를 얻거나 타입을 변환하는 데 사용되는 템플릿 기반의 메커니즘입니다. 헤더에 정의된 클래스 템플릿들을 통해, 특정 타입이 정수형인지, 포인터인지, 혹은 두 타입이 동일한지 등을 확인할 수 있습니다. 이를 활용하면 템플릿 프로그래밍에서 타입에 따른 조건부 컴파일, static_assert를 이용한 타입 제약, 오버로드 해석 제어(SFINAE) 등을 효과적으로 구현할 수 있습니다.C++ 버전별 주요 키워드 도입 시기C++11: 헤더와 함께 대부분의 핵심 타입 특성들이 도입되었습니다. (std::is_same, std::is_integral, std::enable_if, std::conditional 등)C++14..
2025. 9. 27.