di 0.1.0
Loading...
Searching...
No Matches
constant_vector.h
Go to the documentation of this file.
1#pragma once
2
3namespace di::concepts::detail {
4template<typename T>
5concept ConstantVector = requires(T& lvalue, T const& clvalue) {
6 typename T::Value;
7 typename T::ConstValue;
8 lvalue.span();
9 clvalue.span();
10};
11}
12
13namespace di::meta::detail {
14template<concepts::detail::ConstantVector T>
15using VectorValue = T::Value;
16
17template<concepts::detail::ConstantVector T>
18using VectorConstValue = T::ConstValue;
19
20template<concepts::detail::ConstantVector T>
21using VectorIterator = T::Value*;
22
23template<concepts::detail::ConstantVector T>
24using VectorConstIterator = T::ConstValue*;
25}