di 0.1.0
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>
19using RingValue = meta::Conditional<concepts::Const<T>, VectorConstValue<T>, VectorValue<T>>;
20}
detail::ConditionalHelper< value, T, U >::Type Conditional
Definition core.h:88