libstdc++: Detection idiom (original) (raw)
#define | __cpp_lib_experimental_detect |
---|---|
template<typename... > | |
using | std::experimental::void_t = void |
template<typename _Default , template< typename... > class _Op, typename... _Args> | |
using | std::experimental::detected_or = std::__detected_or< _Default, _Op, _Args... > |
template<typename _Default , template< typename... > class _Op, typename... _Args> | |
using | std::experimental::detected_or_t = typename detected_or< _Default, _Op, _Args... >::type |
template<template< typename... > class _Op, typename... _Args> | |
using | std::experimental::detected_t = detected_or_t< nonesuch, _Op, _Args... > |
template<template< typename... > class _Op, typename... _Args> | |
using | std::experimental::is_detected = typename detected_or< void, _Op, _Args... >::__is_detected |
template<typename _Expected , template< typename... > class _Op, typename... _Args> | |
using | std::experimental::is_detected_exact = is_same< _Expected, detected_t< _Op, _Args... > > |
template<typename _To , template< typename... > class _Op, typename... _Args> | |
using | std::experimental::is_detected_convertible = is_convertible< detected_t< _Op, _Args... >, _To > |
template<template< typename... > class _Op, typename... _Args> | |
constexpr bool | std::experimental::is_detected_v |
template<typename _Expected , template< typename... > class _Op, typename... _Args> | |
constexpr bool | std::experimental::is_detected_exact_v |
template<typename _To , template< typename... > class _Op, typename... _Args> | |
constexpr bool | std::experimental::is_detected_convertible_v |
Since
Library Fundamentals TS v2. C++14.
◆ __cpp_lib_experimental_detect
#define __cpp_lib_experimental_detect
◆ detected_or
template<typename _Default , template< typename... > class _Op, typename... _Args>
◆ detected_or_t
template<typename _Default , template< typename... > class _Op, typename... _Args>
◆ detected_t
template<template< typename... > class _Op, typename... _Args>
◆ is_detected
template<template< typename... > class _Op, typename... _Args>
◆ is_detected_convertible
template<typename _To , template< typename... > class _Op, typename... _Args>
◆ is_detected_exact
template<typename _Expected , template< typename... > class _Op, typename... _Args>
◆ void_t
◆ is_detected_convertible_v
template<typename _To , template< typename... > class _Op, typename... _Args>
constexpr bool std::experimental::fundamentals_v2::is_detected_convertible_v | constexpr |
---|
◆ is_detected_exact_v
template<typename _Expected , template< typename... > class _Op, typename... _Args>
constexpr bool std::experimental::fundamentals_v2::is_detected_exact_v | constexpr |
---|
◆ is_detected_v
template<template< typename... > class _Op, typename... _Args>
constexpr bool std::experimental::fundamentals_v2::is_detected_v | constexpr |
---|