2
3
4
5
6
7
8
11#ifndef _MSTD_FUNCTIONS_TYPES_HPP_
12 #define _MSTD_FUNCTIONS_TYPES_HPP_
14 #include <mstd/config.hpp>
17_MSTD_WARNING(
"this is only available for c++17 and greater!");
20 #include <mstd/functions_utils.hpp>
23 #pragma region FUNCTIONS_CHECKS
41 #pragma region CPP_FUNCTIONS
45 template<
class... Args>
51 #pragma region C_FUNCTIONS
54 template<
class F,
class C,
class =
void>
57 template<
class F,
class C>
58 struct c_func_impl<F, C, std::void_t<std::enable_if_t<
mstd::is_function_v<F>,
bool> > > {
63 struct c_func_impl<F,
void, std::void_t<std::enable_if_t<
mstd::is_function_v<F>,
bool> > > {
71 template<
class C,
class F>
74 template<
class... Args>
77 template<
class C,
class... Args>
#define _MSTD_HAS_CXX17
Definition config.hpp:45
#define _MSTD_CONSTEXPR17
Definition config.hpp:76
#define _MSTD_HAS_CXX20
Definition config.hpp:52
#define _MSTD_TYPENAME17
Definition config.hpp:82
Definition function_traits.hpp:23
Definition arithmetic_types.hpp:23
c_member_action_t< C > c_member_method_t
Definition functions_types.hpp:83
c_func_t< void(Args...)> c_action_t
Definition functions_types.hpp:75
static _MSTD_CONSTEXPR17 const bool is_action_v
Definition functions_types.hpp:29
func_t< void(Args...)> action_t
Definition functions_types.hpp:46
c_member_func_t< C, void(Args...)> c_member_action_t
Definition functions_types.hpp:78
as_std_function_t< F > func_t
Definition functions_types.hpp:43
_MSTD_TYPENAME17 utils::c_func_impl< F, void >::type c_func_t
Definition functions_types.hpp:69
_MSTD_TYPENAME17 utils::c_func_impl< F, C >::type c_member_func_t
Definition functions_types.hpp:72
static _MSTD_CONSTEXPR17 const bool is_function_v
Definition functions_types.hpp:25
action_t<> method_t
Definition functions_types.hpp:48
_MSTD_TYPENAME17 function_traits< F >::std_function_type as_std_function_t
Definition function_traits.hpp:608
static _MSTD_CONSTEXPR17 const bool is_method_v
Definition functions_types.hpp:32
Definition functions_types.hpp:58
F C::* type
Definition functions_types.hpp:59
Definition functions_types.hpp:63
F * type
Definition functions_types.hpp:64
Definition functions_types.hpp:55