Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qxp::detail::function_ref_base< noex, Const, R, ArgTypes > Class Template Reference

#include <qxpfunctional.h>

+ Collaboration diagram for qxp::detail::function_ref_base< noex, Const, R, ArgTypes >:

Public Member Functions

template<class F , std::enable_if_t< std::conjunction_v< std::is_function< F >, is_invocable_using< F > >, bool > = true>
Q_IMPLICIT function_ref_base (F *f) noexcept
 
template<class F , std::enable_if_t< std::conjunction_v< std::negation< std::is_same< q20::remove_cvref_t< F >, function_ref_base > >, std::negation< std::is_member_pointer< std::remove_reference_t< F > > >, is_invocable_using< copy_const_t< Const, std::remove_reference_t< F > > & > >, bool > = true>
Q_IMPLICIT constexpr function_ref_base (F &&f) noexcept
 

Protected Types

using BoundEntityType = detail::BoundEntityType<Const>
 
template<typename... Ts>
using is_invocable_using
 
using ThunkPtr = R(*)(BoundEntityType, ArgTypes&&...) noexcept(noex)
 

Protected Member Functions

 ~function_ref_base ()=default
 
template<class T , std::enable_if_t< std::negation_v< std::disjunction< std::is_same< T, function_ref_base >, std::is_pointer< T > > >, bool > = true>
function_ref_baseoperator= (T)=delete
 
R operator() (ArgTypes... args) const noexcept(noex)
 

Protected Attributes

BoundEntityType m_bound_entity
 
ThunkPtr m_thunk_ptr
 

Detailed Description

template<bool noex, class Const, class R, class... ArgTypes>
class qxp::detail::function_ref_base< noex, Const, R, ArgTypes >

Definition at line 72 of file qxpfunctional.h.

Member Typedef Documentation

◆ BoundEntityType

template<bool noex, class Const , class R , class... ArgTypes>
using qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::BoundEntityType = detail::BoundEntityType<Const>
protected

Definition at line 77 of file qxpfunctional.h.

◆ is_invocable_using

template<bool noex, class Const , class R , class... ArgTypes>
template<typename... Ts>
using qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::is_invocable_using
protected
Initial value:
std::conditional_t<
noex,
std::is_nothrow_invocable_r<R, Ts..., ArgTypes...>,
std::is_invocable_r<R, Ts..., ArgTypes...>
>

Definition at line 80 of file qxpfunctional.h.

◆ ThunkPtr

template<bool noex, class Const , class R , class... ArgTypes>
using qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::ThunkPtr = R(*)(BoundEntityType, ArgTypes&&...) noexcept(noex)
protected

Definition at line 86 of file qxpfunctional.h.

Constructor & Destructor Documentation

◆ ~function_ref_base()

template<bool noex, class Const , class R , class... ArgTypes>
qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::~function_ref_base ( )
protecteddefault

◆ function_ref_base() [1/2]

template<bool noex, class Const , class R , class... ArgTypes>
template<class F , std::enable_if_t< std::conjunction_v< std::is_function< F >, is_invocable_using< F > >, bool > = true>
Q_IMPLICIT qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::function_ref_base ( F * f)
inlinenoexcept

Definition at line 99 of file qxpfunctional.h.

References args.

◆ function_ref_base() [2/2]

template<bool noex, class Const , class R , class... ArgTypes>
template<class F , std::enable_if_t< std::conjunction_v< std::negation< std::is_same< q20::remove_cvref_t< F >, function_ref_base > >, std::negation< std::is_member_pointer< std::remove_reference_t< F > > >, is_invocable_using< copy_const_t< Const, std::remove_reference_t< F > > & > >, bool > = true>
Q_IMPLICIT constexpr qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::function_ref_base ( F && f)
inlineconstexprnoexcept

Definition at line 132 of file qxpfunctional.h.

References args.

Member Function Documentation

◆ operator()()

template<bool noex, class Const , class R , class... ArgTypes>
R qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::operator() ( ArgTypes... args) const
inlineprotectednoexcept

◆ operator=()

template<bool noex, class Const , class R , class... ArgTypes>
template<class T , std::enable_if_t< std::negation_v< std::disjunction< std::is_same< T, function_ref_base >, std::is_pointer< T > > >, bool > = true>
function_ref_base & qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::operator= ( T )
protecteddelete

Member Data Documentation

◆ m_bound_entity

template<bool noex, class Const , class R , class... ArgTypes>
BoundEntityType qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::m_bound_entity
protected

◆ m_thunk_ptr

template<bool noex, class Const , class R , class... ArgTypes>
ThunkPtr qxp::detail::function_ref_base< noex, Const, R, ArgTypes >::m_thunk_ptr
protected

The documentation for this class was generated from the following file: