} | } | ||||
template<class RR = R, | template<class RR = R, | ||||
std::enable_if_t<std::is_pointer<RR>::value && std::is_nothrow_copy_constructible<RR>::value | |||||
std::enable_if_t<std::is_pointer<RR>::value | |||||
&& ( std::is_class<std::remove_pointer_t<RR>>::value | && ( std::is_class<std::remove_pointer_t<RR>>::value | ||||
|| std::is_union<std::remove_pointer_t<RR>>::value ), int> = 0 | |||||
|| std::is_union<std::remove_pointer_t<RR>>::value ), int> = 0 | |||||
> | > | ||||
RR operator->() const noexcept | RR operator->() const noexcept | ||||
{ | { |