Iros
 
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