Namespaces
Variants

deduction guides for std::optional

From cppreference.net
Utilities library
헤더 파일에 정의됨 <optional>
template < class T >
optional ( T ) - > optional < T > ;
(C++17부터)

하나의 deduction guide std::optional 에 대해 제공되며, 이는 암시적 deduction guide에서 누락된 특수한 경우들, 특히 복사 불가능한 인수와 배열에서 포인터로의 변환을 처리하기 위함입니다.

예제

#include <optional>
#include <type_traits>
int main()
{
    int a[2];
    std::optional oa{a}; // 명시적 deduction guide 사용
    static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true);
}