22 template <
typename Default,
typename AlwaysVoid,
template <
typename...>
class Op,
typename... Args>
24 constexpr static bool value =
false;
30 template <
typename Default,
template <
typename...>
class Op,
typename... Args>
31 struct detector<Default,
std::void_t<Op<Args...>>, Op, Args...> {
32 constexpr static bool value =
true;
38 template <
template <
class...>
class Op,
class... Args>
41 template <
template <
class...>
class Op,
class... Args>
44 template <
template <
class...>
class Op,
class... Args>
48 template <
typename Default,
template <
typename...>
class Op,
typename... Args>
details::detector< void, void, Op, Args... > is_detected
constexpr bool is_detected_v
typename details::detector< Default, void, Op, Args... >::type detected_or_t
typename is_detected< Op, Args... >::type detected_t
Implementation of the detection idiom (negative case).
static constexpr bool value
static constexpr bool value