LLVM 22.0.0git
llvm::callable_detail::Callable< T, bool > Class Template Reference

Templated storage wrapper for a callable. More...

#include "llvm/ADT/STLExtras.h"

Inheritance diagram for llvm::callable_detail::Callable< T, bool >:
[legend]

Public Member Functions

 Callable ()=default
 Callable (T const &O)
 Callable (Callable const &Other)=default
 Callable (Callable &&Other)=default
Callableoperator= (Callable const &Other)
Callableoperator= (Callable &&Other)
template<typename... Pn, std::enable_if_t< std::is_invocable_v< T, Pn... >, int > = 0>
decltype(auto) operator() (Pn &&...Params)
template<typename... Pn, std::enable_if_t< std::is_invocable_v< T const, Pn... >, int > = 0>
decltype(auto) operator() (Pn &&...Params) const
bool valid () const
bool reset ()
 operator reference ()
 operator const_reference () const

Detailed Description

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
class llvm::callable_detail::Callable< T, bool >

Templated storage wrapper for a callable.

This class is consistently default constructible, copy / move constructible / assignable.

Supported callable types:

Definition at line 190 of file STLExtras.h.

Constructor & Destructor Documentation

◆ Callable() [1/4]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
llvm::callable_detail::Callable< T, bool >::Callable ( )
default

◆ Callable() [2/4]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
llvm::callable_detail::Callable< T, bool >::Callable ( T const & O)
inline

Definition at line 202 of file STLExtras.h.

References T.

◆ Callable() [3/4]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
llvm::callable_detail::Callable< T, bool >::Callable ( Callable< T, bool > const & Other)
default

References Callable(), and llvm::Other.

◆ Callable() [4/4]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
llvm::callable_detail::Callable< T, bool >::Callable ( Callable< T, bool > && Other)
default

References Callable(), and llvm::Other.

Member Function Documentation

◆ operator const_reference()

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
llvm::callable_detail::Callable< T, bool >::operator const_reference ( ) const
inline

Definition at line 237 of file STLExtras.h.

◆ operator reference()

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
llvm::callable_detail::Callable< T, bool >::operator reference ( )
inline

Definition at line 236 of file STLExtras.h.

◆ operator()() [1/2]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
template<typename... Pn, std::enable_if_t< std::is_invocable_v< T, Pn... >, int > = 0>
decltype(auto) llvm::callable_detail::Callable< T, bool >::operator() ( Pn &&... Params)
inline

Definition at line 223 of file STLExtras.h.

◆ operator()() [2/2]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
template<typename... Pn, std::enable_if_t< std::is_invocable_v< T const, Pn... >, int > = 0>
decltype(auto) llvm::callable_detail::Callable< T, bool >::operator() ( Pn &&... Params) const
inline

Definition at line 229 of file STLExtras.h.

◆ operator=() [1/2]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
Callable & llvm::callable_detail::Callable< T, bool >::operator= ( Callable< T, bool > && Other)
inline

Definition at line 214 of file STLExtras.h.

References Callable(), and llvm::Other.

◆ operator=() [2/2]

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
Callable & llvm::callable_detail::Callable< T, bool >::operator= ( Callable< T, bool > const & Other)
inline

Definition at line 207 of file STLExtras.h.

References Callable(), and llvm::Other.

◆ reset()

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
bool llvm::callable_detail::Callable< T, bool >::reset ( )
inline

Definition at line 234 of file STLExtras.h.

◆ valid()

template<typename T, bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
bool llvm::callable_detail::Callable< T, bool >::valid ( ) const
inline

Definition at line 233 of file STLExtras.h.


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