Quick A: Use is_detected
Recently on SO:
How to require an exact function signature in the detection idiom?
With C++17
is_detected
, you may dotemplate <typename T, typename Ret, typename Index> using subscript_t = std::integral_constant<Ret (T::*) (Index), & T::operator[]>; template <typename T, typename Ret, typename Index> using has_subscript = is_detected<subscript_t, T, Ret, Index>; static_assert(has_subscript<std::vector<int>, int&, std::size_t>::value, "!"); static_assert(!has_subscript<std::vector<int>, int&, int>::value, "!");
Add a Comment
Comments are closed.