std::destructible
std::destructible (파괴 가능 개념)
인스턴스가 수명이 끝날 때 안전하게 파괴될 수 있는(참조 타입 포함) 모든 타입에 관한 개념이에요. C++20부터 있어요.
출처: cppreference
본문
<concepts> 헤더에 정의돼 있어요.
template< class T >
concept destructible = std::is_nothrow_destructible_v<T>;
개념 destructible은 인스턴스가 수명이 끝날 때 안전하게 파괴될 수 있는(참조 타입 포함) 모든 타입의 개념을 명세해요.
참고
Destructible named requirement와 달리 std::destructible은 소멸자가 호출될 때 단순히 던지지 않는 것만이 아니라 noexcept(true)일 것을 요구해요. 또한 참조 타입과 배열 타입을 허용해요.
객체 개념(object concepts)의 기초가 되는 개념으로, constructible_from을 비롯한 많은 구성 관련 개념이 std::destructible<T>를 전제 조건으로 요구해요.
참고 문헌
- C++23 표준 (ISO/IEC 14882:2024): 18.4.10 Concept destructible [concept.destructible]
- C++20 표준 (ISO/IEC 14882:2020): 18.4.10 Concept destructible [concept.destructible]