Iros
Loading...
Searching...
No Matches
constant_ring.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/vector/constant_vector.h
"
4
#include "
di/meta/core.h
"
5
#include "
di/meta/language.h
"
6
#include "
di/types/prelude.h
"
7
8
namespace
di::concepts::detail
{
9
template
<
typename
T>
10
concept
ConstantRing
=
ConstantVector<T>
&&
requires
(T
const
& clvalue) {
11
{ clvalue.head() } ->
SameAs<usize>
;
12
{ clvalue.tail() } ->
SameAs<usize>
;
13
{ clvalue.capacity() } ->
SameAs<usize>
;
14
};
15
}
16
17
namespace
di::meta::detail
{
18
template
<concepts::detail::ConstantRing T>
19
using
RingValue
=
meta::Conditional<concepts::Const<T>
,
VectorConstValue<T>
,
VectorValue<T>
>;
20
}
di::concepts::SameAs
Definition
core.h:114
di::concepts::detail::ConstantRing
Definition
constant_ring.h:10
di::concepts::detail::ConstantVector
Definition
constant_vector.h:5
constant_vector.h
core.h
prelude.h
language.h
di::concepts::detail
Definition
impl.h:7
di::meta::detail
Definition
const_sentinel.h:8
di::meta::detail::RingValue
meta::Conditional< concepts::Const< T >, VectorConstValue< T >, VectorValue< T > > RingValue
Definition
constant_ring.h:19
di::meta::detail::VectorValue
T::Value VectorValue
Definition
constant_vector.h:15
di::meta::detail::VectorConstValue
T::ConstValue VectorConstValue
Definition
constant_vector.h:18
di::meta::Conditional
detail::ConditionalHelper< value, T, U >::Type Conditional
Definition
core.h:88
libs
di
include
di
container
ring
constant_ring.h
Generated by
1.13.0