LLVM 19.0.0git
Public Member Functions | List of all members
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 >:
Inheritance graph
[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 210 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 222 of file STLExtras.h.

◆ 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

◆ 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

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 257 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 256 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 243 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 249 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 234 of file STLExtras.h.

References 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 227 of file STLExtras.h.

References 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 254 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 253 of file STLExtras.h.


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