OpenMiner  0.0.1a
Voxel game engine
Public Types | Static Public Attributes | Private Types | List of all members
sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args > Struct Template Reference

#include <sol.hpp>

Public Types

typedef types< Args... > args_list
 
typedef std::tuple< Args... > args_tuple
 
typedef T object_type
 
typedef R return_type
 
typedef tuple_types< R > returns_list
 
typedef R( function_type) (Args...)
 
typedef std::conditional_t< std::is_void< T >::value, args_list, types< first_type, Args... > > free_args_list
 
typedef std::conditional_t< std::is_void< T >::value, R(Args...), R(first_type, Args...)> free_function_type
 
typedef std::conditional_t< std::is_void< T >::value, R(*)(Args...), R(*)(first_type, Args...)> free_function_pointer_type
 
typedef std::remove_pointer_t< free_function_pointer_typesignature_type
 
template<std::size_t i>
using arg_at = void_tuple_element_t< i, args_tuple >
 

Static Public Attributes

static const bool is_noexcept = it_is_noexcept
 
static const bool is_member_function = std::is_void<T>::value
 
static const bool has_c_var_arg = has_c_variadic
 
static const std::size_t arity = sizeof...(Args)
 
static const std::size_t free_arity = sizeof...(Args) + static_cast<std::size_t>(!std::is_void<T>::value)
 

Private Types

typedef std::conditional_t< std::is_void< T >::value, int, T > & first_type
 

Member Typedef Documentation

§ arg_at

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
template<std::size_t i>
using sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::arg_at = void_tuple_element_t<i, args_tuple>

§ args_list

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef types<Args...> sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::args_list

§ args_tuple

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef std::tuple<Args...> sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::args_tuple

§ first_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef std::conditional_t<std::is_void<T>::value, int, T>& sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::first_type
private

§ free_args_list

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef std::conditional_t<std::is_void<T>::value, args_list, types<first_type, Args...> > sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::free_args_list

§ free_function_pointer_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef std::conditional_t<std::is_void<T>::value, R (*)(Args...), R (*)(first_type, Args...)> sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::free_function_pointer_type

§ free_function_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef std::conditional_t<std::is_void<T>::value, R(Args...), R(first_type, Args...)> sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::free_function_type

§ function_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef R( sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::function_type) (Args...)

§ object_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef T sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::object_type

§ return_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef R sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::return_type

§ returns_list

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef tuple_types<R> sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::returns_list

§ signature_type

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
typedef std::remove_pointer_t<free_function_pointer_type> sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::signature_type

Member Data Documentation

§ arity

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
const std::size_t sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::arity = sizeof...(Args)
static

§ free_arity

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
const std::size_t sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::free_arity = sizeof...(Args) + static_cast<std::size_t>(!std::is_void<T>::value)
static

§ has_c_var_arg

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
const bool sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::has_c_var_arg = has_c_variadic
static

§ is_member_function

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
const bool sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::is_member_function = std::is_void<T>::value
static

§ is_noexcept

template<bool it_is_noexcept, bool has_c_variadic, typename T, typename R, typename... Args>
const bool sol::meta::meta_detail::basic_traits< it_is_noexcept, has_c_variadic, T, R, Args >::is_noexcept = it_is_noexcept
static

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