Iros
Loading...
Searching...
No Matches
mutable_ring.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/ring/constant_ring.h
"
4
#include "
di/container/vector/mutable_vector.h
"
5
6
namespace
di::concepts::detail
{
7
template
<
typename
T>
8
concept
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
14
namespace
di::meta::detail
{
15
template
<concepts::detail::MutableVector T>
16
using
RingAllocResult
=
decltype
(
util::declval<T&>
().reserve_from_nothing(
util::declval<size_t>
()));
17
}
di::concepts::LanguageVoid
Definition
core.h:128
di::concepts::detail::ConstantRing
Definition
constant_ring.h:10
di::concepts::detail::MutableRing
Definition
mutable_ring.h:8
di::concepts::detail::MutableVector
Definition
mutable_vector.h:13
constant_ring.h
mutable_vector.h
di::concepts::detail
Definition
impl.h:7
di::meta::detail
Definition
const_sentinel.h:8
di::meta::detail::RingAllocResult
decltype(util::declval< T & >().reserve_from_nothing(util::declval< size_t >())) RingAllocResult
Definition
mutable_ring.h:16
di::types::usize
size_t usize
Definition
integers.h:33
di::util::declval
auto declval() -> meta::AddRValueReference< T >
Definition
declval.h:8
libs
di
include
di
container
ring
mutable_ring.h
Generated by
1.13.0