Iros
 
Loading...
Searching...
No Matches
indirectly_writable.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/util/forward.h"
5
6namespace di::concepts {
7template<typename Out, typename T>
8concept IndirectlyWritable = requires(Out&& out, T&& value) {
9 *out = util::forward<T>(value);
10 *util::forward<Out>(out) = util::forward<T>(value);
11 const_cast<meta::IteratorReference<Out> const&&>(*out) = util::forward<T>(value);
12 const_cast<meta::IteratorReference<Out> const&&>(*util::forward<Out>(out)) = util::forward<T>(value);
13};
14}
Definition indirectly_writable.h:8
Definition any_storable.h:9
decltype(*util::declval< T const & >()) IteratorReference
Definition iterator_reference.h:7