Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
function.h File Reference
#include <exception>
#include <functional>
#include <memory>
#include <type_traits>
#include <typeinfo>
#include <utility>
Include dependency graph for function.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  func::force_function_heap_allocation< typename >
 
struct  func::detail::functor_padding
 
struct  func::detail::empty_struct
 
struct  func::detail::is_inplace_allocated< T, Allocator >
 
struct  func::detail::functor_type< T >
 
struct  func::detail::is_valid_function_argument< typename, typename >
 
struct  func::detail::is_valid_function_argument< function< Result(Arguments...)>, Result(Arguments...)>
 
struct  func::detail::is_valid_function_argument< T, Result(Arguments...)>
 
struct  func::detail::manager_storage_type
 
struct  func::detail::function_manager_inplace_specialization< T, Allocator, Enable >
 
struct  func::detail::function_manager_inplace_specialization< T, Allocator, typename std::enable_if<!is_inplace_allocated< T, Allocator >::value >::type >
 
struct  func::detail::function_manager
 
struct  func::detail::typedeffer< Result,... >
 
struct  func::detail::typedeffer< Result, Argument >
 
struct  func::detail::typedeffer< Result, First_Argument, Second_Argument >
 
class  func::function< Result(Arguments...)>
 
struct  std::uses_allocator< func::function< Result(Arguments...)>, Allocator >
 

Namespaces

namespace  func
 
namespace  func::detail
 
namespace  std
 

Macros

#define FUNC_NO_EXCEPTIONS
 
#define FUNC_NOEXCEPT   noexcept
 
#define FUNC_TEMPLATE_NOEXCEPT(FUNCTOR, ALLOCATOR)   noexcept(detail::is_inplace_allocated<FUNCTOR, ALLOCATOR>::value)
 
#define FUNC_CONSTEXPR   constexpr
 
#define FUNC_MOVE(value)   static_cast<typename std::remove_reference<decltype(value)>::type&&>(value)
 
#define FUNC_FORWARD(type, value)   static_cast<type&&>(value)
 

Typedefs

typedef const function_manager * func::detail::manager_type
 

Functions

template<typename T >
func::detail::to_functor (T &&func)
 
template<typename Result , typename Class , typename... Arguments>
auto func::detail::to_functor (Result(Class::*func)(Arguments...)) -> decltype(std::mem_fn(func))
 
template<typename T >
bool func::detail::is_null (const T &)
 
template<typename Result , typename... Arguments>
bool func::detail::is_null (Result(*const &function_pointer)(Arguments...))
 
template<typename Result , typename Class , typename... Arguments>
bool func::detail::is_null (Result(Class::*const &function_pointer)(Arguments...))
 
template<typename T , typename Allocator >
static const function_manager & func::detail::get_default_manager ()
 
template<typename T , typename Allocator >
static void func::detail::create_manager (manager_storage_type &storage, Allocator &&allocator)
 
template<typename T >
bool func::operator== (std::nullptr_t, const function< T > &rhs) FUNC_NOEXCEPT
 
template<typename T >
bool func::operator== (const function< T > &lhs, std::nullptr_t) FUNC_NOEXCEPT
 
template<typename T >
bool func::operator!= (std::nullptr_t, const function< T > &rhs) FUNC_NOEXCEPT
 
template<typename T >
bool func::operator!= (const function< T > &lhs, std::nullptr_t) FUNC_NOEXCEPT
 
template<typename T >
void func::swap (function< T > &lhs, function< T > &rhs)
 

Macro Definition Documentation

◆ FUNC_CONSTEXPR

#define FUNC_CONSTEXPR   constexpr

◆ FUNC_FORWARD

#define FUNC_FORWARD (   type,
  value 
)    static_cast<type&&>(value)

◆ FUNC_MOVE

#define FUNC_MOVE (   value)    static_cast<typename std::remove_reference<decltype(value)>::type&&>(value)

◆ FUNC_NO_EXCEPTIONS

#define FUNC_NO_EXCEPTIONS

◆ FUNC_NOEXCEPT

#define FUNC_NOEXCEPT   noexcept

◆ FUNC_TEMPLATE_NOEXCEPT

#define FUNC_TEMPLATE_NOEXCEPT (   FUNCTOR,
  ALLOCATOR 
)    noexcept(detail::is_inplace_allocated<FUNCTOR, ALLOCATOR>::value)