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>
Typedef documentation
using detection:: NoneSuchType = NoneSuch
template<template<typename...> class Op, typename... Args>
using detection:: is_detected = detector<NoneSuchType, void, Op, Args...>
template<template<typename...> class Op, typename... Args>
using detection:: detected_t = typename is_ detected<Op, Args...>::type
template<typename ExpectedT, template<typename...> class Op, typename... Args>
using detection:: is_detected_exact = std::is_same<detected_ t<Op, Args...>, ExpectedT>
template<typename T, template<typename...> class Op, typename... Args>
using detection:: is_detected_convertible = std::is_convertible<detected_ t<Op, Args...>, T>