std::is_callable, std::is_nothrow_callable
From cppreference.com
Defined in header <type_traits>
|
||
template <class, class R = void> struct is_callable; // not defined
|
(1) | (since C++17) |
template <class, class R = void> struct is_nothrow_callable; // not defined
|
(2) | (since C++17) |
1) Determines whether
Fn
is callable with the arguments ArgTypes...
and the result would be convertible to R
. Formally, determines whether INVOKE(declval<Fn>(), declval<ArgTypes>()..., R)
is well formed when treated as an unevaluated operand.2) Determines whether
Fn
is callable with the arguments ArgTypes...
and the result would be convertible to R
(same as (1)), and that such call is known not to throw any exceptions.Fn
, R
, and all types in ArgTypes
can be any complete type, array of unknown bound, or (cv-qualified) void
Contents |
Helper variable templates
Defined in header <type_traits>
|
||
template <class T, class R = void> constexpr bool is_callable_v = std::is_callable<T, R>::value; |
(1) | (since C++17) |
template <class T, class R = void> constexpr bool is_nothrow_callable_v = std::is_nothrow_callable<T, R>::value; |
(2) | (since C++17) |
Inherited from std::integral_constant
Member constants
value [static] |
true if INVOKE(declval<Fn>(), declval<ArgTypes>()..., R) is well formed when treated as an unevaluated operand , false otherwise (public static member constant) |
Member functions
operator bool |
converts the object to bool, returns value (public member function) |
operator() (C++14) |
returns value (public member function) |
Member types
Type | Definition |
value_type
|
bool |
type
|
std::integral_constant<bool, value> |
Notes
Version (1) if this trait may be implemented in terms of std::is_convertible and std::result_of
Examples
This section is incomplete Reason: no example |
See also
(C++17)(C++23) |
invokes any Callable object with given arguments and possibility to specify return type(since C++23) (function template) |
(C++11)(removed in C++20)(C++17) |
deduces the result type of invoking a callable object with a set of arguments (class template) |
(C++11) |
obtains a reference to an object of the template type argument for use in an unevaluated context (function template) |