Loading [MathJax]/jax/output/HTML-CSS/config.js
Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
core.h File Reference

Go to the source code of this file.

Classes

struct  di::meta::ListV< vs >
 
struct  di::meta::TypeConstant< T >
 
struct  di::meta::detail::RemoveConstHelper< T >
 
struct  di::meta::detail::RemoveConstHelper< T const >
 
struct  di::meta::detail::RemoveVolatile< T >
 
struct  di::meta::detail::RemoveVolatile< T volatile >
 
struct  di::meta::detail::RemoveReferenceHelper< T >
 
struct  di::meta::detail::RemoveReferenceHelper< T & >
 
struct  di::meta::detail::RemoveReferenceHelper< T && >
 
struct  di::meta::detail::ConditionalHelper< value, T, U >
 
struct  di::meta::detail::ConditionalHelper< false, T, U >
 

Namespaces

namespace  di
 
namespace  di::meta
 
namespace  di::concepts
 
namespace  di::meta::detail
 
namespace  di::concepts::detail
 

Concepts

concept  di::concepts::Trait
 
concept  di::concepts::AlwaysFalse
 This concept is used with static_assert() to cause the static assert to fail only when the template has been instantiated.
 
concept  di::concepts::AlwaysTrue
 This concept is used with static_assert() to stop compilation if any provided type is not well-formed.
 
concept  di::concepts::SameAs
 
concept  di::concepts::OneOf
 
concept  di::concepts::LanguageVoid
 
concept  di::concepts::InstanceOf
 
concept  di::concepts::InstanceOfV
 
concept  di::concepts::InstanceOfT
 
concept  di::concepts::TypeList
 

Typedefs

template<concepts::Trait T>
using di::meta::Type = T::Type
 
template<typename T>
using di::meta::TypeIdentity = Type<TypeConstant<T>>
 This is a helper template to prevent C++ from deducing the type of template argument.
 
template<typename T>
using di::meta::RemoveConst = Type<detail::RemoveConstHelper<T>>
 
template<typename T>
using di::meta::RemoveVolatile = Type<detail::RemoveVolatile<T>>
 
template<typename T>
using di::meta::RemoveCV = RemoveConst<RemoveVolatile<T>>
 
template<typename T>
using di::meta::RemoveReference = Type<detail::RemoveReferenceHelper<T>>
 
template<typename T>
using di::meta::RemoveCVRef = RemoveCV<RemoveReference<T>>
 
template<bool value, typename T, typename U>
using di::meta::Conditional = detail::ConditionalHelper<value, T, U>::Type
 

Variables

template<typename T, typename U>
constexpr auto di::concepts::detail::same_as_helper = false
 
template<typename T>
constexpr auto di::concepts::detail::same_as_helper< T, T > = true
 
template<typename T>
constexpr bool di::concepts::detail::language_void_helper = false
 
template<>
constexpr bool di::concepts::detail::language_void_helper< void > = true
 
template<typename T, template< typename... > typename Template>
constexpr bool di::concepts::detail::instance_of_helper = false
 
template<typename... Types, template< typename... > typename Template>
constexpr bool di::concepts::detail::instance_of_helper< Template< Types... >, Template > = true
 
template<typename T, template< auto... > typename Template>
constexpr bool di::concepts::detail::instance_of_v_helper = false
 
template<auto... values, template< auto... > typename Template>
constexpr bool di::concepts::detail::instance_of_v_helper< Template< values... >, Template > = true
 
template<typename T, template< template< typename... > typename... > typename Template>
constexpr bool di::concepts::detail::instance_of_template_helper = false
 
template<template< typename... > typename... Templates, template< template< typename... > typename... > typename Template>
constexpr bool di::concepts::detail::instance_of_template_helper< Template< Templates... >, Template > = true