어떤 표현식이 std::unique_ptr
(의 경우 std::unique_ptr<T>
)이라고 정적으로 주장 할 수 있습니까?모든 유형의 unique_ptr에 대한 static_assert
static_assert (std::is_pointer<decltype(exp)>()), "not a smart pointer")
위의 코드는 작동하지 않습니다. 똑바로 서두르지 않으면 형식에 대해 bool()
연산자가 정의 된 경우에만 관심이 있습니다.
최상의 답변 (현재로서는)은'std :: true_type' 등에 의존한다는 것을 알아 두십시오. 그것들은 다가오는 C++ 17의 일부이며 현재 사용할 수있는'std :: integral_constant'를 사용하여 솔루션을 다시 작성해야 할 수도 있습니다 – StoryTeller
@StoryTeller 허? 'std :: true_type'는 C++ 11부터 사용할 수 있습니다. 'std :: bool_constant' 별칭 템플릿과 혼동했을 수도 있습니다. – cpplearner
@cpplearner, 당신은 옳은 것 같습니다. 나는 3 명이 손을 잡았다는 사실을 마음에 새기고있다. 오 잘. – StoryTeller