Sequoia
Loading...
Searching...
No Matches
HandlerTraits.hpp
Go to the documentation of this file.
1
2// Copyright Oliver J. Rosten 2018. //
3// Distributed under the GNU GENERAL PUBLIC LICENSE, Version 3.0. //
4// (See accompanying file LICENSE.md or copy at //
5// https://www.gnu.org/licenses/gpl-3.0.en.html) //
7
8#pragma once
9
16
17namespace sequoia::object
18{
19 template<class H>
20 concept handler = requires(H& h, typename H::product_type& x, const typename H::product_type& cx){
21 typename H::product_type;
22 typename H::value_type;
23
24 { h.get(x) } -> std::same_as<typename H::value_type&>;
25 { h.get_ptr(x) } -> std::same_as<typename H::value_type*>;
26 { h.get(cx) } -> std::same_as<const typename H::value_type&>;
27 { h.get_ptr(cx) } -> std::same_as<const typename H::value_type*>;
28 };
29}
Concepts which are sufficiently general to appear in the sequoia namespace.
Definition: HandlerTraits.hpp:20