io
C++ I/O scheduling library with asynchronous socket operations
Loading...
Searching...
No Matches
src
detail
customization.hpp
Go to the documentation of this file.
1
/* Copyright 2025 Kevin Exton
2
*
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
20
#pragma once
21
#ifndef IO_CUSTOMIZATION_HPP
22
#define IO_CUSTOMIZATION_HPP
23
24
#include <utility>
25
26
namespace
io::detail {
30
template
<
typename
Tag>
struct
cpo
{
37
template
<
typename
... Args>
38
auto
operator()
(Args &&...args)
const
39
->
decltype
(tag_invoke(Tag{}, std::forward<Args>(args)...)) {
40
return
tag_invoke(Tag{}, std::forward<Args>(args)...);
41
}
42
};
43
}
// namespace io::detail
44
45
#endif
// IO_CUSTOMIZATION_HPP
io::detail::cpo
A generic function object that implements customization points.
Definition
customization.hpp:30
io::detail::cpo::operator()
auto operator()(Args &&...args) const -> decltype(tag_invoke(Tag{}, std::forward< Args >(args)...))
Invokes the customization point.
Definition
customization.hpp:38
Generated by
1.9.8