uTL
micro Template library
|
invoke() and invoke traits implementation More...
#include <utl/core/impl.h>
#include <utl/meta/meta.h>
#include <type_traits>
#include <functional>
#include <utility>
Go to the source code of this file.
Classes | |
struct | utl::detail::is_ref_wrapper< T > |
struct | utl::detail::is_ref_wrapper< std::reference_wrapper< U > > |
struct | utl::is_invocable< F, Args > |
std::is_invocable trait for C++11 More... | |
struct | utl::is_invocable_r< R, F, Args > |
std::is_invocable_r trait for C++11 More... | |
struct | utl::detail::try_invoke< _Callable, _Args > |
struct | utl::detail::invoke_result_< B, _Callable, _Args > |
struct | utl::detail::invoke_result_< true, _Callable, _Args... > |
Namespaces | |
utl | |
STL's core language concepts. | |
utl::detail | |
Typedefs | |
template<typename _Callable , typename... _Args> | |
using | utl::invoke_result = detail::invoke_result_< is_invocable< _Callable, _Args... >::value, _Callable, _Args... > |
invoke_result (for C++14) More... | |
template<typename _Callable , typename... _Args> | |
using | utl::invoke_result_t = meta::eval< invoke_result< _Callable, _Args... > > |
invoke_result_t (for C++14) More... | |
Functions | |
template<class T , class Type , class T1 , class... Args, meta::enable_if_t< std::is_member_function_pointer< std::decay_t< Type T::*>>::value &&std::is_base_of< T, std::decay_t< T1 >>::value, int > = 0> | |
decltype(auto) | utl::detail::invoke_impl_ (Type T::*f, T1 &&t1, Args &&... args) |
template<class F , class... Args> | |
decltype(auto) | utl::detail::invoke_impl_ (F &&f, Args &&... args) |
template<typename _Callable , typename... _Args> | |
decltype(auto) | utl::invoke (_Callable &&fn, _Args &&... args) |
Invoke a callable object (for C++14) More... | |
invoke() and invoke traits implementation
Copyright (C) 2018-2019 Christos Choutouridis
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more detail.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Definition in file invoke.h.