di 0.1.0
Loading...
Searching...
No Matches
language.h File Reference

Go to the source code of this file.

Classes

struct  di::meta::IsFunctionTo< R >

Namespaces

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

Concepts

concept  di::concepts::Const
concept  di::concepts::LValueReference
concept  di::concepts::ConstLValueReference
concept  di::concepts::RValueReference
concept  di::concepts::MutableRValueReference
concept  di::concepts::Reference
concept  di::concepts::Pointer
concept  di::concepts::LanguageFunction
concept  di::concepts::BoundedLanguageArray
concept  di::concepts::UnboundedLanguageArray
concept  di::concepts::LanguageArray
concept  di::concepts::MemberPointer
concept  di::concepts::MemberFunctionPointer
concept  di::concepts::MemberObjectPointer
concept  di::concepts::NullPointer
concept  di::concepts::InitializerList
concept  di::concepts::Aggregate
concept  di::concepts::Integer
concept  di::concepts::Integral
concept  di::concepts::FloatingPoint
concept  di::concepts::Arithmetic
concept  di::concepts::Signed
concept  di::concepts::SignedInteger
concept  di::concepts::UnsignedInteger
concept  di::concepts::SignedIntegral
concept  di::concepts::UnsignedIntegral
concept  di::concepts::Class
concept  di::concepts::Union
concept  di::concepts::Enum
concept  di::concepts::IntegralOrEnum
concept  di::concepts::Scalar
concept  di::concepts::Object
concept  di::concepts::BaseOf
concept  di::concepts::UniqueObjectRepresentation

Typedefs

template<concepts::LanguageFunction Fun>
using di::meta::LanguageFunctionReturn = Type<detail::LanguageFunctionReturnHelper<Fun>>
template<typename T>
using di::meta::RemoveExtent = Type<detail::RemoveExtentHelper<T>>
template<typename T>
using di::meta::RemoveAllExtents = Type<detail::RemoveAllExtentsHelper<T>>
template<concepts::MemberPointer T>
using di::meta::MemberPointerValue = Type<detail::MemberPointerValueHelper<RemoveCV<T>>>
template<concepts::MemberPointer T>
using di::meta::MemberPointerClass = Type<detail::MemberPointerClassHelper<RemoveCV<T>>>
template<concepts::Enum T>
using di::meta::UnderlyingType = __underlying_type(T)
template<typename T>
using di::meta::MakeSigned = detail::MakeSignedHelper<RemoveCV<T>>::Type
template<typename T>
using di::meta::MakeUnsigned = detail::MakeUnsignedHelper<RemoveCV<T>>::Type
template<typename T>
using di::meta::AddConst = T const
template<typename T>
using di::meta::AddVolatile = T volatile
template<typename T>
using di::meta::AddCV = T const volatile
template<typename T>
using di::meta::AddLValueReference = Type<detail::AddLValueReferenceHelper<T>>
template<typename T>
using di::meta::AddRValueReference = Type<detail::AddRValueReferenceHelper<T>>
template<typename T>
using di::meta::AddPointer = Type<detail::AddPointerHelper<T>>
 This is a helper template which will convert reference types into their corresponding pointer type, while also working for non-references.
template<typename T, typename U>
using di::meta::Like = Type<detail::LikeHelper<T, U>>
template<typename T>
using di::meta::RemoveRValueReference = Conditional<concepts::RValueReference<T>, RemoveReference<T>, T>
template<typename T>
using di::meta::RemovePointer = Type<detail::RemovePointerHelper<T>>
template<typename T>
using di::meta::RemoveFunctionQualifiers = Type<detail::RemoveFunctionQualifiersHelper<T>>
template<typename T>
using di::meta::Decay

Variables

template<typename T>
constexpr auto di::meta::ArrayRank = 0ZU
template<typename T>
constexpr auto di::meta::ArrayRank< T[]> = 1 + ArrayRank<T>
template<typename T, usize N>
constexpr auto di::meta::ArrayRank< T[N]> = 1 + ArrayRank<T>
template<typename T, types::size_t level = 0>
constexpr auto di::meta::Extent = 0ZU
template<typename T, usize level>
constexpr auto di::meta::Extent< T[], level > = Extent<T, level - 1>
template<typename T, usize size>
constexpr auto di::meta::Extent< T[size], 0 > = size
template<typename T, usize size, usize level>
constexpr auto di::meta::Extent< T[size], level > = Extent<T, level - 1>