Jamba C++ API 7.5.0
Loading...
Searching...
No Matches
pongasoft::Utils::cpp17::experimental Namespace Reference

The code here is copied from <experimental/type_traits> because it is not implemented with Visual studio build tools 17. More...

Classes

struct  _DETECTOR
struct  _DETECTOR< _Default, void_t< _Op< _Args... > >, _Op, _Args... >
struct  nonesuch

Typedefs

template<class Default, template< class... > class _Op, class... _Args>
using detected_or = _DETECTOR<Default, void, _Op, _Args...>
template<class Default, template< class... > class _Op, class... _Args>
using detected_or_t = typename detected_or<Default, _Op, _Args...>::type
template<template< class... > class _Op, class... _Args>
using detected_t = typename _DETECTOR<nonesuch, void, _Op, _Args...>::type
template<template< class... > class _Op, class... _Args>
using is_detected = typename _DETECTOR<nonesuch, void, _Op, _Args...>::value_t
template<class To, template< class... > class _Op, class... _Args>
using is_detected_convertible = std::is_convertible<detected_t<_Op, _Args...>, To>
template<class Expected, template< class... > class _Op, class... _Args>
using is_detected_exact = std::is_same<Expected, detected_t<_Op, _Args...>>
template<class...>
using void_t = void

Variables

template<class To, template< class... > class _Op, class... _Args>
constexpr bool is_detected_convertible_v = is_detected_convertible<To, _Op, _Args...>::value
template<class Expected, template< class... > class _Op, class... _Args>
constexpr bool is_detected_exact_v = is_detected_exact<Expected, _Op, _Args...>::value
template<template< class... > class _Op, class... _Args>
constexpr bool is_detected_v = is_detected<_Op, _Args...>::value

Detailed Description

The code here is copied from <experimental/type_traits> because it is not implemented with Visual studio build tools 17.

The intent is that this code will be removed when available on all platforms.

Typedef Documentation

◆ detected_or

template<class Default, template< class... > class _Op, class... _Args>
using detected_or = _DETECTOR<Default, void, _Op, _Args...>

◆ detected_or_t

template<class Default, template< class... > class _Op, class... _Args>
using detected_or_t = typename detected_or<Default, _Op, _Args...>::type

◆ detected_t

template<template< class... > class _Op, class... _Args>
using detected_t = typename _DETECTOR<nonesuch, void, _Op, _Args...>::type

◆ is_detected

template<template< class... > class _Op, class... _Args>
using is_detected = typename _DETECTOR<nonesuch, void, _Op, _Args...>::value_t

◆ is_detected_convertible

template<class To, template< class... > class _Op, class... _Args>
using is_detected_convertible = std::is_convertible<detected_t<_Op, _Args...>, To>

◆ is_detected_exact

template<class Expected, template< class... > class _Op, class... _Args>
using is_detected_exact = std::is_same<Expected, detected_t<_Op, _Args...>>

◆ void_t

template<class...>
using void_t = void

Variable Documentation

◆ is_detected_convertible_v

template<class To, template< class... > class _Op, class... _Args>
bool is_detected_convertible_v = is_detected_convertible<To, _Op, _Args...>::value
constexpr

◆ is_detected_exact_v

template<class Expected, template< class... > class _Op, class... _Args>
bool is_detected_exact_v = is_detected_exact<Expected, _Op, _Args...>::value
constexpr

◆ is_detected_v

template<template< class... > class _Op, class... _Args>
bool is_detected_v = is_detected<_Op, _Args...>::value
constexpr