distortos  v0.4.0
object-oriented C++ RTOS for microcontrollers
invoke.hpp File Reference

invoke() header More...

#include <utility>
Include dependency graph for invoke.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 estd
 Collection of useful templates.
 
 estd::internal
 Internals of estd namespace - should not be used directly!
 

Functions

template<typename Function , typename... Args>
auto estd::internal::invoke (Function &&function, Args &&... args) -> decltype(std::forward< Function >(function)(std::forward< Args >(args)...))
 Implementation of invoke() for function objects. More...
 
template<typename T , typename Base , typename Derived , typename... Args>
auto estd::internal::invoke (T Base::*memberFunction, Derived &&object, Args &&... args) -> decltype((std::forward< Derived >(object).*memberFunction)(std::forward< Args >(args)...))
 Implementation of invoke() for member functions. More...
 
template<typename MemberFunction , typename Pointer , typename... Args>
auto estd::internal::invoke (MemberFunction memberFunction, Pointer &&pointer, Args &&... args) -> decltype(((*std::forward< Pointer >(pointer)).*memberFunction)(std::forward< Args >(args)...))
 Implementation of invoke() for member functions. More...
 
template<typename T , typename Base , typename Derived >
auto estd::internal::invoke (T Base::*dataMember, Derived &&object) -> decltype(std::forward< Derived >(object).*dataMember)
 Implementation of invoke() for data members. More...
 
template<typename DataMember , typename Pointer >
auto estd::internal::invoke (DataMember dataMember, Pointer &&pointer) -> decltype((*std::forward< Pointer >(pointer)).*dataMember)
 Implementation of invoke() for data members. More...
 
template<typename Function , typename... Args>
auto estd::invoke (Function &&function, Args &&... args) -> decltype(internal::invoke(std::forward< Function >(function), std::forward< Args >(args)...))
 Invokes callable object in an appropriate way. More...
 

Detailed Description

invoke() header

Author
Copyright (C) 2015-2017 Kamil Szczygiel http://www.distortec.com http://www.freddiechopin.info
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.