You can create a trait for this:
template <typename T, typename D> std::true_type is_unique_ptr_impl(const std::unique_ptr<T, D>&, int); template <typename T> std::false_type is_unique_ptr_impl(const T&, ...); template <typename T> using is_unique_ptr = decltype(is_unique_ptr_impl(std::declval<T>(), 0));
source share