guanaqo 1.0.0-alpha.25
Utilities for scientific software
Loading...
Searching...
No Matches
tag-invoke.hpp File Reference

Detailed Description

tag_invoke customization point and concepts.

See also
https://wg21.link/P1895R0
https://wg21.link/P2547R0

Definition in file tag-invoke.hpp.

#include <guanaqo/compiler.h>
#include <type_traits>
#include <utility>
Include dependency graph for tag-invoke.hpp:

Go to the source code of this file.

Classes

struct  guanaqo::tag_invoke_fn_ns::tag_invoke_fn

Namespaces

namespace  guanaqo
namespace  guanaqo::tag_invoke_fn_ns
namespace  guanaqo::tag_invoke_ns

Concepts

concept  guanaqo::tag_invocable
concept  guanaqo::nothrow_tag_invocable

Typedefs

template<typename Tag, typename... Args>
using guanaqo::tag_invoke_result
template<typename Tag, typename... Args>
using guanaqo::tag_invoke_result_t
template<auto & Tag>
using guanaqo::tag_t = std::decay_t<decltype(Tag)>

Functions

void guanaqo::tag_invoke_fn_ns::guanaqo_tag_invoke ()=delete
 Poison pill to hide overloads of foo() that might be found in parent namespace.

Variables

constexpr tag_invoke_fn_ns::tag_invoke_fn guanaqo::tag_invoke_ns::guanaqo_tag_invoke = {}
 The tag_invoke customization point object.
template<typename Tag, typename... Args>
constexpr bool guanaqo::is_tag_invocable_v = tag_invocable<Tag, Args...>
template<typename Tag, typename... Args>
constexpr bool guanaqo::is_nothrow_tag_invocable_v