Jamba C++ API  4.0.0
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

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

◆ detected_or_t

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

◆ detected_t

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

◆ is_detected

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

◆ is_detected_convertible

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

◆ is_detected_exact

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

◆ void_t

using void_t = void

Variable Documentation

◆ is_detected_convertible_v

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

◆ is_detected_exact_v

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

◆ is_detected_v

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