detection namespace
Classes
-
template<typename T, typename, template<typename...> class Op, typename... Args>struct detector
-
template<typename T, template<typename...> class Op, typename... Args>struct detector<T, std::void_t<Op<Args...>>, Op, Args...>
- struct NoneSuch
Typedefs
- using NoneSuchType = NoneSuch
-
template<template<typename...> class Op, typename... Args>using is_detected = detector<NoneSuchType, void, Op, Args...>
-
template<template<typename...> class Op, typename... Args>using detected_t = typename is_
detected<Op, Args...>::type -
template<typename ExpectedT, template<typename...> class Op, typename... Args>using is_detected_exact = std::is_same<detected_t<Op, Args...>, ExpectedT>
-
template<typename T, template<typename...> class Op, typename... Args>using is_detected_convertible = std::is_convertible<detected_t<Op, Args...>, T>