|
struct | eagine::c_api_constant_base |
| Common base class for wrapping C-API constant values. More...
|
|
struct | eagine::no_c_api_constant< T, Tag, IsIndexed > |
| Class wrapping a constant with missing or unknown value. More...
|
|
struct | eagine::static_c_api_constant< ClassList, T, value, Tag, IsIndexed > |
| Class wrapping a constant with value known at compile-time. More...
|
|
struct | eagine::dynamic_c_api_constant< ClassList, T, Tag, IsIndexed > |
| Class wrapping a constant with value loaded at run-time. More...
|
|
class | eagine::bad_result< Info > |
| Exception wrapping information about failed C-API function call result. More...
|
|
class | eagine::api_result< Result, Info, api_result_validity > |
| Class wrapping the result of a C-API function call. More...
|
|
class | eagine::api_result_value< Result, api_result_validity::always > |
| Specialization for always-valid result value. More...
|
|
class | eagine::api_result< Result, Info, api_result_validity::always > |
| Specialization of api_result for always-valid result values. More...
|
|
class | eagine::api_result_value< Result, api_result_validity::maybe > |
| Specialization for conditionally-valid result value. More...
|
|
class | eagine::static_c_api_function< ApiTraits, Tag, Signature, function > |
| Wrapper for statically-linked C-API functions. More...
|
|
class | eagine::dynamic_c_api_function< ApiTraits, Tag, Signature > |
| Wrapper for dynamically-linked C-API functions. More...
|
|
struct | eagine::default_c_api_traits |
| Policy class customizing C-API constant value loading and function linking. More...
|
|
class | eagine::static_c_api_function< ApiTraits, Tag, RV(Params...), function > |
| Wrapper for statically-linked C-API functions. More...
|
|
class | eagine::dynamic_c_api_function< ApiTraits, Tag, RV(Params...)> |
| Wrapper for dynamically -linked C-API functions. More...
|
|
struct | eagine::enum_value< T, ClassList, Tag > |
| Class holding the value of a (typically C-API) symbolic constant. More...
|
|
struct | eagine::enum_value< T, mp_list< Classes... >, Tag > |
| Class holding the value of a symbolic constant or enumerator. More...
|
|
struct | eagine::opt_enum_value< T, ClassList, Tag > |
| Class holding optional value of a (typically C-API) symbolic constant. More...
|
|
struct | eagine::opt_enum_value< T, mp_list< Classes... >, Tag > |
| Class holding optional value of a symbolic constant or enumerator. More...
|
|
struct | eagine::no_enum_value< T, Tag > |
| Class representing undefined value of a (typically C-API) symbolic constant. More...
|
|
struct | eagine::enum_class< Self, T, LibId, Id > |
| Enum class for constants or enumerators (typically from a C-API). More...
|
|
struct | eagine::is_enum_class< T > |
| Implementation of is_enum_class trait. More...
|
|
struct | eagine::is_enum_class_value< Class, Value > |
| Implementation of is_enum_class_value trait. More...
|
|
struct | eagine::any_enum_class< LibId > |
| Type erasure for instantiations of enum_class from a specified library. More...
|
|
struct | eagine::any_enum_value< LibId > |
| Type erasure for instantiations of enum_value from a specified library. More...
|
|
class | eagine::enum_class_container< EnumClass, Container > |
| Template for containers of enum_class. More...
|
|
class | eagine::basic_handle< Tag, Handle, invalid > |
| Non-owning wrapper for C-API opaque handle types. More...
|
|
class | eagine::basic_owned_handle< Tag, Handle, invalid > |
| Owning wrapper for C-API opaque handle types. More...
|
|
class | eagine::basic_handle_container< basic_handle< Tag, Handle, invalid >, Container > |
| Basic template for C-API opaque handle containers and ranges. More...
|
|
|
template<typename ClassList , typename Constant , typename Tag = nothing_t, bool IsIndexed = false> |
using | eagine::opt_c_api_constant = typename get_opt_c_api_constant< ClassList, Constant, Tag, IsIndexed >::type |
| Template alias used for switching between static and dynamic constants. More...
|
|
template<typename Result , typename Info > |
using | eagine::api_opt_result = api_result< Result, Info, api_result_validity::maybe > |
| Alias for conditionally-valid result of a C-API function call. More...
|
|
template<typename Result , typename Info > |
using | eagine::api_no_result = api_result< Result, Info, api_result_validity::never > |
| Alias for always-invalid result of a C-API function call. More...
|
|
template<typename ApiTraits , typename Tag , typename Signature , c_api_function_ptr< ApiTraits, Tag, Signature > function, bool IsAvailable, bool IsStatic> |
using | eagine::opt_c_api_function = std::conditional_t< IsAvailable, std::conditional_t< IsStatic, static_c_api_function< ApiTraits, Tag, Signature, function >, dynamic_c_api_function< ApiTraits, Tag, Signature > >, unimplemented_c_api_function< ApiTraits, Tag, Signature > > |
| Template alias used for switching between static and dynamic function. More...
|
|
template<typename EnumClass > |
using | eagine::enum_class_span = enum_class_container< EnumClass, span< typename EnumClass::value_type > > |
| Alias for non-const span of multiple enum_class values. More...
|
|
template<typename EnumClass > |
using | eagine::enum_class_view = enum_class_container< EnumClass, span< const typename EnumClass::value_type > > |
| Alias for const span of multiple enum_class values. More...
|
|
template<typename EnumClass , std::size_t N> |
using | eagine::enum_class_array = enum_class_container< EnumClass, std::array< typename EnumClass::value_type, N > > |
| Alias for array of multiple enum_class values. More...
|
|
template<typename BasicHandle > |
using | eagine::basic_handle_span = basic_handle_container< BasicHandle, span< typename BasicHandle::handle_type > > |
| Alias for basic handle container based on non-const span. More...
|
|
template<typename BasicHandle > |
using | eagine::basic_handle_view = basic_handle_container< BasicHandle, span< const typename BasicHandle::handle_type > > |
| Alias for basic handle container based on const span. More...
|
|
template<typename BasicHandle , std::size_t N> |
using | eagine::basic_handle_array = basic_handle_container< BasicHandle, std::array< typename BasicHandle::handle_type, N > > |
| Alias for basic handle container based on std::array. More...
|
|
template<typename BasicHandle > |
using | eagine::basic_handle_vector = basic_handle_container< BasicHandle, std::vector< typename BasicHandle::handle_type > > |
| Alias for basic handle container based on std::vector. More...
|
|
template<typename ApiTraits , typename Tag , typename Signature , c_api_function_ptr< ApiTraits, Tag, Signature > function, bool IsAvailable, bool IsStatic>
using eagine::opt_c_api_function = typedef std::conditional_t< IsAvailable, std::conditional_t< IsStatic, static_c_api_function<ApiTraits, Tag, Signature, function>, dynamic_c_api_function<ApiTraits, Tag, Signature> >, unimplemented_c_api_function<ApiTraits, Tag, Signature> > |
Template alias used for switching between static and dynamic function.
- Template Parameters
-
ApiTraits | a policy class that customizes the linking of functions. |
Tag | a tag type that can be used in custiomization of some operations on the function. |
Signature | the wrapped C-API function signature. |
- See also
- static_c_api_function
-
dynamic_c_api_function
-
mp_list
C-API constants can be either known at compile time or loaded dynamically by using some API function(s).
- Examples
- eagine/c_api_wrap.cpp.