Iros
 
Loading...
Searching...
No Matches
mutable_ring.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace di::concepts::detail {
7template<typename T>
8concept MutableRing = MutableVector<T> && ConstantRing<T> && requires(T& lvalue, usize n) {
9 { lvalue.assume_head(n) } -> LanguageVoid;
10 { lvalue.assume_tail(n) } -> LanguageVoid;
11};
12}
13
14namespace di::meta::detail {
15template<concepts::detail::MutableVector T>
16using RingAllocResult = decltype(util::declval<T&>().reserve_from_nothing(util::declval<size_t>()));
17}
Definition core.h:128
Definition constant_ring.h:10
Definition mutable_ring.h:8
Definition mutable_vector.h:13
Definition impl.h:7
Definition const_sentinel.h:8
decltype(util::declval< T & >().reserve_from_nothing(util::declval< size_t >())) RingAllocResult
Definition mutable_ring.h:16
size_t usize
Definition integers.h:33
auto declval() -> meta::AddRValueReference< T >
Definition declval.h:8