ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
function_ptr_varargs_3.hpp
Go to the documentation of this file.
1/*
2Copyright (c) 2016 Modified Work Barrett Adair
3
4Distributed under the Boost Software License, Version 1.0.
5(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
6
7HEADER GUARDS INTENTIONALLY OMITTED
8DO NOT INCLUDE THIS HEADER DIRECTLY
9
10macros used:
11
12BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE - the transaction_safe specifier for
13 the current include (`transaction_safe` or nothing)
14
15BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE - `std::true_type` or `std::false_type`,
16 tied on whether BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE is `transaction_safe`
17
18BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER - `transaction_safe` when
19 BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE is enabled, otherwise nothing
20
21BOOST_CLBL_TRTS_NOEXCEPT_SPEC - the noexcept specifier for
22 the current include (`noexcept` or nothing)
23
24BOOST_CLBL_TRTS_IS_NOEXCEPT - `std::true_type` or `std::false_type`,
25 tied on whether BOOST_CLBL_TRTS_NOEXCEPT_SPEC is `noexcept`
26
27BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER - `noexcept` if
28 BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES is defined, otherwise nothing
29*/
30
31template<typename Return, typename... Args>
32struct function<BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
35 : default_callable_traits<> {
36
37 static constexpr bool value = true;
38
39 using has_varargs = std::true_type;
40
41 using traits = function;
42
43 using return_type = Return;
44
45 using arg_types = std::tuple<Args...>;
47
48 using type =
52
53 using function_type = Return(Args..., ...);
54
56
58 BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...)
60
62
64
67
68 using add_noexcept = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args..., ...)
71
73
76
77 using add_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
80
81 template<typename U>
83 BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args..., ...)
86
87 template<typename NewReturn>
89 BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
92
93 template<template<class...> class Container>
94 using expand_args = Container<Args...>;
95
96 using is_member_pointer = std::false_type;
97};
98
#define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
Definition config.hpp:37
#define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
Definition config.hpp:106
#define BOOST_CLBL_TRTS_ST
Definition function.hpp:84
#define BOOST_CLBL_TRTS_CC
Definition function.hpp:83
#define BOOST_CLBL_TRTS_VARARGS_CC
Definition function.hpp:82
#define BOOST_CLBL_TRTS_IS_NOEXCEPT
#define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC type
BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_member_pointer
BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
#define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
Definition function.hpp:11
#define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
Definition function.hpp:12