ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::base::function_base_n 命名空间参考

class  function_data_wrapper_t
 
struct  function_data_wrapper_t< T, Ret_t(Args_t...) noexcept(nothrow)>
 
struct  function_type_getter
 
struct  function_type_getter_helper
 
struct  function_type_getter_helper< Ret_t(T::*)(Args_t...) const &noexcept(nothrow)>
 
struct  function_type_getter_helper< Ret_t(T::*)(Args_t...) const noexcept(nothrow)>
 
struct  function_type_getter_helper< Ret_t(T::*)(Args_t...) noexcept(nothrow)>
 
struct  function_type_getter_helper< Ret_t(T::*)(Args_t...)&noexcept(nothrow)>
 

类型定义

template<typename T >
using get_function_type = function_type_getter< T >::type
 

函数

template<typename T >
constexpr auto function_type_getter_conditional_helper () noexcept
 

类型定义说明

◆ get_function_type

函数说明

◆ function_type_getter_conditional_helper()

template<typename T >
constexpr auto elc::defs::base::function_base_n::function_type_getter_conditional_helper ( )
constexprnoexcept

在文件 all_defs.cpp12914 行定义.

12914 {
12915 if constexpr(::std::is_function_v<remove_cvref<T>>)
12916 return type_info<remove_cvref<T>>;
12917 elseif constexpr(is_pointer<T> && ::std::is_function_v<remove_cvref<::std::remove_pointer_t<T>>>)//不支持多级函数指针:懒得写(其实挺简单的),而且function_t若支持多级函数指针的推导指引会很不安全
12918 return function_type_getter_conditional_helper<::std::remove_pointer_t<T>>();
12919 else
12920 return type_info<type_name function_type_getter_helper<decltype(&T::operator())>::type>;
12921 }
#define elseif
Definition all_defs.cpp:650
#define type_name
Definition all_defs.cpp:670
判断类型是否为指针
::std::remove_cvref_t< T > remove_cvref
Definition all_defs.cpp:835
constexpr type_info_t< T > type_info
函数调用图:
这是这个函数的调用关系图: