Iros
 
Loading...
Searching...
No Matches
constant_ring.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/meta/core.h"
5#include "di/meta/language.h"
6#include "di/types/prelude.h"
7
8namespace di::concepts::detail {
9template<typename T>
10concept 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
17namespace di::meta::detail {
18template<concepts::detail::ConstantRing T>
20}
Definition core.h:114
Definition constant_ring.h:10
Definition constant_vector.h:5
Definition impl.h:7
Definition const_sentinel.h:8
meta::Conditional< concepts::Const< T >, VectorConstValue< T >, VectorValue< T > > RingValue
Definition constant_ring.h:19
T::Value VectorValue
Definition constant_vector.h:15
T::ConstValue VectorConstValue
Definition constant_vector.h:18
detail::ConditionalHelper< value, T, U >::Type Conditional
Definition core.h:88