OGLplus  (0.59.0) a C++ wrapper for rendering APIs

eagine Namespace Reference

Common code is placed in this namespace. More...

Namespaces

 application
 Application harness / wrapper code is placed in this namespace.
 
 eglp
 EGL-related code is placed in this namespace.
 
 glx
 GLX wrapper code is placed in this namespace.
 
 math
 Math-related code is placed in this namespace.
 
 msgbus
 Message bus code is placed in this namespace.
 
 oalp
 AL-related code is placed in this namespace.
 
 shapes
 Shape generator and loader code is placed in this namespace.
 
 valtree
 Value-tree code is placed in this namespace.
 
 x11
 X11 wrapper code is placed in this namespace.
 

Classes

class  abstract
 Base template for polymorphic classes, implements common functionality. More...
 
struct  always_valid_policy
 Policy for always valid values. More...
 
class  animated_value
 Class representing a value animated between two points, with easing. More...
 
struct  any_enum_class
 Type erasure for instantiations of enum_class from a specified library. More...
 
struct  any_enum_value
 Type erasure for instantiations of enum_value from a specified library. More...
 
class  any_forward_iterator
 Type erasure for forward iterators. More...
 
class  any_random_engine
 Type-erasing reference for standard random engine types. More...
 
struct  anything
 Type that can by constructed from single argument of any other type. More...
 
class  api_result
 Class wrapping the result of a C-API function call. More...
 
class  api_result< Result, Info, api_result_validity::always >
 Specialization of api_result for always-valid result values. More...
 
class  api_result_value< Result, api_result_validity::always >
 Specialization for always-valid result value. More...
 
class  api_result_value< Result, api_result_validity::maybe >
 Specialization for conditionally-valid result value. More...
 
class  application_config
 Class for reading application configuration. More...
 
class  application_config_value
 Class wrapping values that can be loaded from application_config. More...
 
class  bad_result
 Exception wrapping information about failed C-API function call result. More...
 
class  base64dump
 Class for encoding byte blocks into base64 format. More...
 
class  basic_c_str
 Helper template for getting zero-terminated strings from string spans. More...
 
class  basic_callable_ref
 Declaration of class template storing a reference to a callable object. More...
 
class  basic_callable_ref< RV(P...) noexcept(NE), NE >
 Implementation of class template storing a reference to a callable object. More...
 
class  basic_handle
 Non-owning wrapper for C-API opaque handle types. More...
 
class  basic_handle_container< basic_handle< Tag, Handle, invalid >, Container >
 Basic template for C-API opaque handle containers and ranges. More...
 
class  basic_identifier
 Basic template for limited length, packed string identifiers. More...
 
class  basic_iterable_type
 Template used in implementation of some iterators. More...
 
class  basic_logger
 Basic template for logger objects. More...
 
class  basic_noexcept_casting_iterator
 Iterator type-casting the referenced elements. More...
 
class  basic_owned_handle
 Owning wrapper for C-API opaque handle types. More...
 
class  basic_program_parameter
 Base class for pre-declared program parameter. More...
 
class  basic_selfref_iterator
 Iterator referencing the wrapped iterable type. More...
 
struct  basic_str_view_less
 Comparator template for standard string - string span comparisons. More...
 
class  basic_string_path
 Basic class storing paths made of string elements. More...
 
class  basic_string_span
 Specialization of memory::basic_span for character string containers. More...
 
class  basic_transforming_iterator
 Iterator transforming the referenced elements. More...
 
class  basic_valid_if
 Basic template for conditionally-valid values. More...
 
class  basic_valid_if_value
 Base class for basic_valid_if, storing the conditionally valid value. More...
 
class  basic_wrapping_container
 Template used in implementation of containers with wrapped elements. More...
 
class  bindump
 Class for encoding byte blocks into binary format. More...
 
class  biteset
 Sequence of unsigned integer values with specified number bits. More...
 
class  biteset_iterator< biteset< N, B, T > >
 Iterator type for biteset. More...
 
class  biteset_value_proxy
 Proxy class that can be used to access elements in a biteset. More...
 
class  biteset_value_proxy< biteset< N, B, T > >
 Specialization of biteset proxy for mutable biteset values. More...
 
class  biteset_value_proxy< const biteset< N, B, T > >
 Specialization of biteset proxy for const biteset values. More...
 
class  biteset_value_proxy_base
 Base class for biteset value proxy. More...
 
class  bitfield
 Class for manipulating and testing a group of enumeration-based bits. More...
 
class  block_data_sink
 Serialization data sink backed by a pre-allocated memory block. More...
 
class  block_data_source
 Deserialization data source backed by a pre-allocated memory block. More...
 
class  build_info
 Class providing basic system information. More...
 
class  byteset
 Class storing a sequence of bytes converting them to and from unsigned integer. More...
 
struct  c_api_constant_base
 Common base class for wrapping C-API constant values. More...
 
class  common_deserializer_backend
 CRTP mixin implementing the common parts of deserializer backends. More...
 
class  common_serializer_backend
 CRTP mixin implementing the common parts of serializer backends. More...
 
class  count_t
 Class counting invocation of its call operator. More...
 
class  data_compressor
 Class implementing data compression and decompresson. More...
 
struct  default_c_api_traits
 Policy class customizing C-API constant value loading and function linking. More...
 
struct  default_identifier_char_set
 Characted encoding table for identifier. More...
 
struct  deserializer_backend
 Interface for deserialization read backends. More...
 
struct  deserializer_data_source
 Abstract base class for deserialization data sources. More...
 
struct  does_have_log_entry_adapter
 Helper class used in implementation of has_log_entry_adapter_t. More...
 
class  double_buffer
 Class holding two instances of type T and allows to switch them. More...
 
struct  dynamic_c_api_constant
 Class wrapping a constant with value loaded at run-time. More...
 
class  dynamic_c_api_function
 Wrapper for dynamically-linked C-API functions. More...
 
class  dynamic_c_api_function< ApiTraits, Tag, RV(Params...)>
 Wrapper for dynamically -linked C-API functions. More...
 
class  embedded_resource
 Class providing access to a const resource block embedded into the executable. More...
 
struct  enum_class
 Enum class for constants or enumerators (typically from a C-API). More...
 
class  enum_class_container
 Template for containers of enum_class. More...
 
struct  enum_value
 Class holding the value of a (typically C-API) symbolic constant. More...
 
struct  enum_value< T, mp_list< Classes... >, Tag >
 Class holding the value of a symbolic constant or enumerator. More...
 
class  executable_module
 Wrapper for a handle to dynamically linkable executable module. More...
 
class  file_contents
 Class providing access to the contents of a file. More...
 
struct  file_contents_intf
 Interface for file content getter implementations. More...
 
class  fixed_size_string
 String with maximum fixed-size internal storage. More...
 
class  format_string_and_list
 Helper class used in implementation of string variable substitution. More...
 
class  func_on_scope_exit
 Class storing a callable object and an instance of on_scope_exit. More...
 
struct  get_type
 Implementation detail of the type_t template. More...
 
class  hexdump
 Class for encoding byte blocks into hexdump-like format. More...
 
class  identifier_encoding
 Helper class implementing identifier encoding functionality. More...
 
class  identifier_name
 Helper template for unpacking of identifier into a character string. More...
 
struct  indeterminate_t
 Type of the indeterminate constant assignable to tribool. More...
 
struct  instead_of
 
class  integer_range
 Integer range type template usable in range-based loops. More...
 
class  interface
 Base template for abstract interfaces, implements common functionality. More...
 
class  interleaved_call
 Callable class that interleaves calls to a function with a separator function. More...
 
struct  is_enum_class
 Implementation of is_enum_class trait. More...
 
struct  is_enum_class_value
 Implementation of is_enum_class_value trait. More...
 
class  istream_data_source
 Deserialization data source backed by an input stream. More...
 
class  key_value_list
 Template for classes wrapping static key/value typically attribute lists. More...
 
struct  key_value_list_element
 A single key/value pair for a key/value list. More...
 
class  log_entry
 Class representing a single log entry / message. More...
 
class  logger
 Standalone logger object type. More...
 
struct  logger_backend
 Interface for logging backend implementations. More...
 
class  main_ctx
 Class for a single-instance object providing useful information ans services. More...
 
class  main_ctx_log_backend_getter
 Helper class used in the implementation of logging in main context object. More...
 
class  main_ctx_object
 Base class for main context objects. More...
 
class  main_ctx_object_parent_info
 Helper class used to initialize main context objects. More...
 
struct  main_ctx_options
 Structure storing customization options for main context. More...
 
struct  member_function_constant
 Declaration of compile-time member function pointer wrappers. More...
 
struct  member_function_constant< RV(C::*)(P...), Ptr >
 Implementation of compile-time member function pointer wrappers. More...
 
struct  message_id
 Class storing two identifier values representing class/method pair. More...
 
struct  mp_contains
 Implements the contains operation on compile-time type lists. More...
 
struct  mp_is_empty
 Implements the is_empty operation on compile-time type lists. More...
 
struct  mp_list
 Compile-time type list template. More...
 
struct  mp_minus
 Implementation of subtraction on types representing numbers. More...
 
struct  mp_negate
 Implementation of negation on types representing numbers. More...
 
struct  mp_plus
 Implementation of addition on types representing numbers. More...
 
struct  mp_union_add
 Implements the union operation on compile-time type lists. More...
 
class  named_logging_object
 Basic template for logging objects. More...
 
struct  never_valid_policy
 Policy for never-valid values. More...
 
struct  no_c_api_constant
 Class wrapping a constant with missing or unknown value. More...
 
struct  no_enum_value
 Class representing undefined value of a (typically C-API) symbolic constant. More...
 
struct  no_log_entry
 Do-nothing variant of log_entry with compatible API. More...
 
struct  noexcept_casting_iterator
 Default instantiation of basic_noexcept_casting_iterator. More...
 
struct  nothing_t
 Class representing "none" / "nothing" values. More...
 
class  ok
 Value typically wrapping function call result and success indicator. More...
 
struct  ok_traits
 Traits used for customization of class ok for the specified Outcome. More...
 
class  on_scope_exit
 Class executing a specified action on scope exit. More...
 
struct  opt_enum_value
 Class holding optional value of a (typically C-API) symbolic constant. More...
 
struct  opt_enum_value< T, mp_list< Classes... >, Tag >
 Class holding optional value of a symbolic constant or enumerator. More...
 
class  optional_reference_wrapper
 Optional reference to an instance of type T. More...
 
class  ostream_data_sink
 Serialization data sink backed by an output stream. More...
 
class  packed_block_data_sink
 Packing serialization data sink backed by a pre-allocated memory block. More...
 
class  packed_block_data_source
 Unpacking deserialization data source backed by a pre-allocated memory block. More...
 
class  process_watchdog
 Class implementing process watchdog functionality. More...
 
class  program_arg
 Class representing a single main function (command-line) argument. More...
 
class  program_arg_iterator
 Iterator type over program_arg instances. More...
 
class  program_args
 Class wrapping the main function arguments, providing a convenient API. More...
 
class  program_parameter
 Class template for pre-declared program parameter. More...
 
class  program_parameter< void >
 Template specialization for pre-declared program parameter without value. More...
 
class  program_parameter_alias
 Alias (alternative tags) for another declared program parameter. More...
 
class  protected_member
 Class holding a single tagged data member. More...
 
class  resetting_timeout
 Specialization of timeout that resets when tested for expiration. More...
 
class  root_logger
 Class typically used as the per-application single root of logger hierarchy. More...
 
struct  root_logger_options
 Structure holding root logger customization options. More...
 
struct  selector
 Template used to construct tag-types used mostly in tag-dispatching. More...
 
struct  selfref_iterator
 Default instantiation of basic_selfref_iterator. More...
 
struct  serializer_backend
 Interface for serialization write backends. More...
 
class  serializer_backend_id
 Base class partially implementing serializer and deserialized backends. More...
 
struct  serializer_data_sink
 Abstract base class for serialization data sinks. More...
 
class  shared_executable_module
 Reference counting handle to dynamically linkable executable module. More...
 
class  signal_switch
 Installs handlers for interrupt signals and flips switch on receipt. More...
 
class  some_true
 Class storing initially false value and logically or-ing other values. More...
 
struct  static_c_api_constant
 Class wrapping a constant with value known at compile-time. More...
 
class  static_c_api_function
 Wrapper for statically-linked C-API functions. More...
 
class  static_c_api_function< ApiTraits, Tag, RV(Params...), function >
 Wrapper for statically-linked C-API functions. More...
 
class  static_enum_map
 Class mapping from an enumerator of an instantiation of a template. More...
 
struct  static_message_id
 Template with two identifier parameters representing class/method pair. More...
 
class  stream_log_entry
 Log entry helper containing an istream for creating the log message. More...
 
class  string_deserializer_backend
 Cross-platform implementation of deserializer backend using ASCII-only strings. More...
 
class  string_serializer_backend
 Cross-platform implementation of serializer backend using ASCII-only strings. More...
 
class  string_variable_map
 Class storing a map of variable names to values, doing string substitution. More...
 
class  structured_file_content
 Class loading a baked structured data from a file. More...
 
class  system_info
 Class providing basic system information. More...
 
class  tagged_quantity
 Value of type T with a specified unit or tag type U. More...
 
class  time_measure
 Class that measures elapsed time since instance construction. More...
 
class  timeout
 Class representing a timeout since construction or reset. More...
 
struct  transforming_iterator
 Default instantiation of basic_transforming_iterator. More...
 
class  tribool
 Tri-state boolean value. More...
 
struct  type_identity
 Template type used mostly for function type-tag dispatching. More...
 
class  user_info
 Class providing user-related information. More...
 
struct  valid_flag_policy
 Policy for optionally valid values, indicated by a boolean flag. More...
 
class  valid_if
 Primary template for conditionally valid values. More...
 
struct  valid_if_btwn_policy
 Policy for values valid if between Min and Max. More...
 
struct  valid_if_ge0_le1_policy
 Policy for values valid if between zero and one. More...
 
struct  valid_if_ge0_lt1_policy
 Policy for values valid if greate or equal to zero, less than one. More...
 
struct  valid_if_in_list_policy
 Policy for values valid if contained in object of Range type. More...
 
struct  valid_if_indicated_policy
 Policy for values valid when non-boolean Indicator has Value. More...
 
struct  valid_if_le_size_ge0_policy
 Policy for values valid if >= 0 and <= container.size(). More...
 
struct  valid_if_lt_policy
 Policy class for values valid if less than Cmp. More...
 
struct  valid_if_lt_size_ge0_policy
 Policy for values valid if >= 0 and < container.size(). More...
 
struct  valid_if_lt_size_policy
 Policy class for values valid if less than container.size(). More...
 
struct  valid_if_ne_policy
 Policy class for values valid if not equal to Cmp. More...
 
struct  valid_if_nonneg_policy
 Policy class for values valid when they are non-negative. More...
 
struct  valid_if_not_empty_policy
 Policy class for containers valid if their empty() member function return false. More...
 
struct  valid_if_nz_policy
 Policy class for values valid if not equal to zero. More...
 
class  valid_if_or_fallback
 Helper class storing both conditionally valid value and fallback. More...
 
struct  valid_if_positive_policy
 Policy class for values valid when they are positive. More...
 
struct  valid_if_size_gt_policy
 Policy class for containers valid if their size is larger than specified number. More...
 
struct  valid_if_within_limits_policy
 Policy class for values valid if they are withing limits of other type. More...
 
struct  value_change_divider
 Transform class for value_change_tracker, dividing by the specified amount. More...
 
class  value_change_tracker
 Class tracking the changes in a potentially transformed value. More...
 
class  value_with_history
 Class for read-only values with history. More...
 
class  value_with_history_storage
 Base storage class for values and variables with history. More...
 
struct  variable_substitution_options
 Options for string variable substitution customization. More...
 
class  variable_with_history
 Class for mutable variables with history. More...
 
class  weakbool
 Weak tri-state boolean value. More...
 

Typedefs

template<typename T >
using any_std_forward_iterator = any_forward_iterator< T, const T &, const T *, std::ptrdiff_t >
 Alias for type erased STL forward iterators.
 
template<typename std::size_t B>
using biteset_cell_type = std::conditional_t<(B<=8), std::uint_least8_t, std::conditional_t<(B<=16), std::uint_least16_t, std::conditional_t<(B<=32), std::uint_least32_t, std::conditional_t<(B<=64), std::uint_least64_t, void > >> >
 Selects the appropriate type for biteset element representation. More...
 
template<typename ClassList , typename Constant , typename Tag = nothing_t, bool IsIndexed = false>
using 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 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 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 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 Sig >
using callable_ref = basic_callable_ref< Sig, is_noexcept_function_v< Sig > >
 Alias for callable object references.
 
template<typename EnumClass >
using 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 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 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 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 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 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 basic_handle_vector = basic_handle_container< BasicHandle, std::vector< typename BasicHandle::handle_type > >
 Alias for basic handle container based on std::vector. More...
 
using identifier = basic_identifier< 10, 6, default_identifier_char_set, identifier_t >
 Default identifier type used throughout the project. More...
 
using long_identifier = basic_identifier< 20, 6, default_identifier_char_set, long_identifier_t >
 Long identifier type used throughout the project. More...
 
using identifier_t = std::uint64_t
 The underlying integer type for eagine::identifier. More...
 
using process_instance_id_t = std::uint32_t
 Unique process identifier type (does not necessarily match to OS PID).
 
using host_id_t = std::uint32_t
 Unique host identifier type.
 
using long_identifier_t = __uint128_t
 The underlying integer type for eagine::long_identifier. More...
 
template<typename Src , typename Dst >
using instead_of_t = typename instead_of< Src, Dst >::type
 
template<bool B>
using bool_constant = std::integral_constant< bool, B >
 Alias for boolean constant type.
 
template<int I>
using int_constant = std::integral_constant< int, I >
 Alias for signed int constant type.
 
template<unsigned U>
using unsigned_constant = std::integral_constant< unsigned, U >
 Alias for unsigned int constant type.
 
template<std::size_t S>
using size_constant = std::integral_constant< std::size_t, S >
 Alias for size_t constant type.
 
template<identifier_t Id>
using id_constant = std::integral_constant< identifier_t, Id >
 Alias for identifier_t constant type. More...
 
template<typename T >
using has_log_entry_adapter_t = typename does_have_log_entry_adapter< T >::type
 Trait indicating if there is a log entry adapter for type T. More...
 
using logger_instance_id = std::uintptr_t
 Logger object instance id type.
 
template<log_event_severity severity>
using log_event_severity_constant = std::integral_constant< log_event_severity, severity >
 Type alias for log event severity constants.
 
using min_log_severity_t = log_event_severity_constant< log_event_severity::EAGINE_MIN_LOG_SEVERITY >
 The minimal log severity constant.
 
template<log_event_severity severity>
using is_log_level_enabled_t = bool_constant<(severity >=min_log_severity_t::value)>
 Compile-time trait indicating if the specified log severity is enabled. More...
 
using main_ctx_parent = const main_ctx_object_parent_info &
 Alias for main_ctx_object_parent_info parameter type.
 
template<typename T1 , typename T2 >
using mp_plus_t = typename mp_plus< T1, T2 >::type
 Addition operation on types representing numbers. More...
 
template<typename T1 , typename T2 >
using mp_minus_t = typename mp_minus< T1, T2 >::type
 Subtraction operation on types representing numbers. More...
 
template<typename T1 >
using mp_negate_t = typename mp_negate< T1 >::type
 Unary negation operation on types representing numbers. More...
 
template<typename TL , typename T >
using mp_contains_t = typename mp_contains< TL, T >::type
 Trait indicating whether a type list contains a specified type. More...
 
template<typename TL1 , typename TL2 >
using mp_union = mp_union_add< TL1, TL2, mp_list<> >
 Implements the union operation on compile-time type lists. More...
 
template<typename TL1 , typename TL2 >
using mp_union_t = typename mp_union< TL1, TL2 >::type
 Trait returning the union of types in two type lists. More...
 
template<typename T >
using seconds_t = tagged_quantity< T, units::second >
 Alias for type storing duration values in seconds. More...
 
template<typename T >
using radians_t = tagged_quantity< T, units::radian >
 Alias for type storing angle values in radians. More...
 
template<typename T >
using degrees_t = tagged_quantity< T, units::degree >
 Alias for type storing angle values in degrees. More...
 
template<typename T >
using kelvins_t = tagged_quantity< T, units::kelvin >
 Alias for type storing temperature values in kelvins. More...
 
using default_selector_t = selector< 0U >
 Type alias for the default overload selector type. More...
 
using construct_from_t = selector< 0xFU >
 Type alias for the construct-from tag-dispatch selector. More...
 
using serialization_errors = bitfield< serialization_error_code >
 Alias for serialization error bitfield. More...
 
using deserialization_errors = bitfield< deserialization_error_code >
 Alias for deserialization error bitfield. More...
 
template<typename T >
using serialization_result = valid_if_indicated< T, serialization_errors, bool, false >
 Alias for result type of serialization operations. More...
 
template<typename T >
using deserialization_result = valid_if_indicated< T, deserialization_errors, bool, false >
 Alias for result type of deserialization operations. More...
 
using string_span = basic_string_span< char >
 Alias for mutable string spans.
 
using string_view = basic_string_span< const char >
 Alias for const string views.
 
using str_view_less = basic_str_view_less< std::string, string_view >
 Comparator template for standard string - string_view comparisons.
 
template<typename T , typename F = void>
using type_t = typename get_type< T, F >::type
 Template returning nested alias type of type T or void.
 
using byte = unsigned char
 Byte type alias.
 
using std_align_t = std::size_t
 Alignment type used by std.
 
using std_size_t = std::size_t
 Size type used by std.
 
using span_size_t = std::ptrdiff_t
 Signed span size type used by eagine.
 
using valid_span_size = valid_if_nonnegative< span_size_t >
 Valid size type.
 
template<typename T >
using always_valid = valid_if< T, always_valid_policy >
 Specialization of valid_if, for always valid values. More...
 
template<typename T , typename C , C Min, C Max>
using valid_if_between_c = valid_if< T, valid_if_btwn_policy< T, C, Min, Max > >
 Specialization of valid_if, for values valid if between Min and Max.
 
template<typename T , T Min, T Max>
using valid_if_between = valid_if_between_c< T, T, Min, Max >
 Specialization of valid_if, for values valid if between Min and Max. More...
 
template<typename T >
using optionally_valid = valid_if< T, valid_flag_policy >
 Specialization of valid_if with flag indicating validity. More...
 
template<typename T >
using valid_if_between_0_1 = valid_if< T, valid_if_ge0_le1_policy< T > >
 Specialization of valid_if, for values valid if 0 <= value <= 1. More...
 
template<typename T >
using valid_if_ge0_lt1 = valid_if< T, valid_if_ge0_lt1_policy< T > >
 Specialization of valid_if, for values valid if 0 <= value < 1. More...
 
template<typename T , typename Range >
using valid_if_in_list = valid_if< T, valid_if_in_list_policy< T, Range > >
 Specialization of valid_if, for values valid in Range.
 
template<typename T , typename Indicator , typename Comparable = bool, Comparable Value = true>
using valid_if_indicated = valid_if< T, valid_if_indicated_policy< Indicator, Comparable, Value > >
 Specialization of valid_if, for values with non-boolean indicator. More...
 
template<typename C , typename T >
using valid_if_le_size_ge0 = in_class_valid_if< T, C, valid_if_le_size_ge0_policy< T, C > >
 Specialization of valid_if, for values valid if >= 0 and <= container.size(). More...
 
template<typename T , T Cmp>
using valid_if_less_than = valid_if< T, valid_if_lt_policy< T, Cmp > >
 Specialization of valid_if, for values valid if less than Cmp. More...
 
template<typename C , typename T >
using valid_if_lt_size = in_class_valid_if< T, C, valid_if_lt_size_policy< T, C > >
 Policy class for values valid if less than container size. More...
 
template<typename C , typename T >
using valid_if_lt_size_ge0 = in_class_valid_if< T, C, valid_if_lt_size_ge0_policy< T, C > >
 Specialization of valid_if, for values valid if >= 0 and < container.size(). More...
 
template<typename T >
using never_valid = valid_if< T, never_valid_policy >
 Specialization of valid_if, for never-valid values. More...
 
template<typename T >
using valid_if_nonnegative = valid_if< T, valid_if_nonneg_policy< T > >
 Specialization of valid_if, for values valid if non-negative. More...
 
template<typename T >
using valid_if_not_empty = valid_if< T, valid_if_not_empty_policy< T > >
 Specialization of valid_if, for values valid if not empty. More...
 
template<typename T , T Cmp>
using valid_if_not = valid_if< T, valid_if_ne_policy< T, Cmp > >
 Specialization of valid_if, for values valid if not equal to Cmp. More...
 
template<typename T >
using valid_if_not_zero = valid_if< T, valid_if_nz_policy< T > >
 Specialization of valid_if, for values valid if not equal to zero. More...
 
template<typename T >
using nonzero_t = valid_if_not_zero< T >
 Alias for valid_if_not_zero.
 
template<typename T >
using valid_if_positive = valid_if< T, valid_if_positive_policy< T > >
 Specialization of valid_if, for values valid if positive. More...
 
template<typename C , typename T >
using valid_if_size_gt = in_class_valid_if< C, T, valid_if_size_gt_policy< C, T > >
 Specialization of valid_if, for values valid if they contain more than n items. More...
 
template<typename Dst , typename Src >
using valid_if_within_limits = valid_if< Src, valid_if_within_limits_policy< Dst, Src > >
 Specialization of valid_if, for values valid if within limits of Dst type. More...
 
template<typename T , T D>
using value_change_div_tracker = value_change_tracker< T, value_change_divider< T, D > >
 Alias for value tracker tracking changes by amount specified by D.
 

Enumerations

enum  api_result_validity { api_result_validity::always, api_result_validity::maybe, api_result_validity::never }
 Enumeration of C-API function call result validity. More...
 
enum  data_compression_level { data_compression_level::none, data_compression_level::lowest, data_compression_level::normal, data_compression_level::highest }
 Data compression level enumeration. More...
 
enum  log_event_severity {
  log_event_severity::backtrace, log_event_severity::trace, log_event_severity::debug, log_event_severity::stat,
  log_event_severity::info, log_event_severity::warning, log_event_severity::error, log_event_severity::fatal
}
 Log event severity enumeration. More...
 
enum  serialization_error_code : std::uint8_t {
  serialization_error_code::not_supported, serialization_error_code::too_much_data, serialization_error_code::incomplete_write, serialization_error_code::data_sink_error,
  serialization_error_code::backend_error
}
 Serialization error code bits enumeration. More...
 
enum  deserialization_error_code : std::uint16_t {
  deserialization_error_code::not_supported, deserialization_error_code::not_enough_data, deserialization_error_code::unexpected_data, deserialization_error_code::incomplete_read,
  deserialization_error_code::missing_element, deserialization_error_code::excess_element, deserialization_error_code::missing_member, deserialization_error_code::excess_member,
  deserialization_error_code::invalid_format, deserialization_error_code::data_source_error, deserialization_error_code::backend_error
}
 Deserialization error code bits enumeration. More...
 

Functions

template<typename Engine >
 any_random_engine (Engine &) -> any_random_engine< typename Engine::result_type >
 Deduction guide for any_random_engine.
 
template<typename T , std::size_t N>
static constexpr auto array_size (const T(&)[N]) noexcept
 Returns the number of elements in the array passed as argument.
 
template<typename Result >
static constexpr auto extract (api_result_value< Result, api_result_validity::never > &) noexcept -> Result &
 Overload of extract for api_result_value.
 
template<typename Result >
static constexpr auto extract (api_result_value< Result, api_result_validity::maybe > &&result) noexcept -> Result
 Specialization of extract for api_result_value.
 
template<typename Result >
static constexpr auto extract (api_result_value< Result, api_result_validity::maybe > &result) noexcept -> Result &
 Specialization of extract for api_result_value.
 
template<typename Result >
static constexpr auto extract (const api_result_value< Result, api_result_validity::maybe > &result) noexcept -> const Result &
 Specialization of extract for api_result_value.
 
template<typename Result , typename Info >
auto operator>> (api_result< Result, Info, api_result_validity::maybe > result, Result &dest) -> Result &
 Extraction operator for api_result_value. More...
 
static auto embed (identifier res_id, string_view src_path) noexcept -> embedded_resource
 Triggers the embedding of data from a file on the specified path. More...
 
template<identifier_t LibId>
static constexpr auto same_enum_class (any_enum_class< LibId > a, any_enum_class< LibId > b) noexcept
 Tests if two instances of any_enum_class belong to the same enum class. More...
 
static auto get_environment_variable (string_view variable_name) noexcept -> optionally_valid< string_view >
 Returns the value in the specified environment variable. More...
 
template<typename T >
static constexpr auto extract (T *ptr) noexcept -> T &
 Checks ptr and dereferences it. More...
 
template<typename T >
static constexpr auto extract_or (T *ptr, std::remove_const_t< T > &fallback) noexcept -> T &
 Checks ptr and dereferences it if not null, otherwise returns fallback.
 
template<typename T , typename F >
static constexpr auto extract_or (T *ptr, F &&fallback) -> std::enable_if_t< std::is_convertible_v< F, T >, T >
 Checks ptr and dereferences it if not null, otherwise returns fallback.
 
template<typename T >
static constexpr auto extract (std::shared_ptr< T > &ptr) noexcept -> T &
 Checks ptr and dereferences it. More...
 
template<typename T >
static constexpr auto extract (const std::shared_ptr< T > &ptr) noexcept -> const T &
 Checks ptr and dereferences it. More...
 
template<typename T >
static constexpr auto extract_or (std::shared_ptr< T > &ptr, std::remove_const_t< T > &fallback) noexcept -> T &
 Checks ptr and dereferences it if not null, otherwise returns fallback.
 
template<typename T , typename F >
static constexpr auto extract_or (std::shared_ptr< T > &ptr, F &&fallback) -> std::enable_if_t< std::is_convertible_v< F, T >, T >
 Checks ptr and dereferences it if not null, otherwise returns fallback.
 
template<typename T , typename D >
static constexpr auto extract (std::unique_ptr< T, D > &ptr) noexcept -> T &
 Checks ptr and dereferences it. More...
 
template<typename T , typename D >
static constexpr auto extract (const std::unique_ptr< T, D > &ptr) noexcept -> const T &
 Checks ptr and dereferences it. More...
 
template<typename T , typename D >
static constexpr auto extract_or (std::unique_ptr< T, D > &ptr, std::remove_const_t< T > &fallback) noexcept -> T &
 Checks ptr and dereferences it if not null, otherwise returns fallback.
 
template<typename T , typename D , typename F >
static constexpr auto extract_or (std::unique_ptr< T, D > &ptr, F &&fallback) -> std::enable_if_t< std::is_convertible_v< F, T >, T >
 Checks ptr and dereferences it if not null, otherwise returns fallback.
 
template<span_size_t N>
static auto make_fixed_size_string (const char(&str)[N]) noexcept
 Creates a fixed_size_string from a C-string literal.
 
template<span_size_t N1, span_size_t N2>
static auto operator+ (const fixed_size_string< N1 > &s1, const fixed_size_string< N2 > &s2) noexcept
 Concatenation operator for fixed_size_string.
 
template<int I>
static auto to_fixed_size_string (int_constant< I >, std::enable_if_t<(I >=0) &&(I< 10)> *=nullptr) noexcept
 Converts a single-digit decimal number into fixed_size_string.
 
template<int I>
static auto to_fixed_size_string (int_constant< I >, std::enable_if_t<(I > 9)> *=nullptr) noexcept
 Converts a multi-digit decimal number into fixed_size_string.
 
template<int I>
static auto to_fixed_size_string (int_constant< I >, std::enable_if_t<(I< 0)> *=nullptr) noexcept
 Converts a negative decimal number into fixed_size_string.
 
template<typename T >
auto from_string (string_view src) noexcept
 Converts the string representation in src to a value of type T. More...
 
template<typename T , identifier_t V>
auto from_string (string_view src, selector< V > sel) noexcept
 Converts the string representation in src to a value of type T. More...
 
auto config_git_branch () noexcept -> valid_if_not_empty< string_view >
 Returns the name of the git branch from which the executable is built. More...
 
auto config_git_hash_id () noexcept -> valid_if_not_empty< string_view >
 Returns the hash of the commit from which the executable is built. More...
 
auto config_git_date () noexcept -> valid_if_not_empty< string_view >
 Returns the date of the commit from which the executable is built. More...
 
auto config_git_describe () noexcept -> valid_if_not_empty< string_view >
 Returns the description of the commit from which the executable is built. More...
 
auto config_git_version () noexcept -> valid_if_not_empty< string_view >
 Returns the version number as string. More...
 
auto config_git_version_major () noexcept -> valid_if_nonnegative< int >
 Returns major version number. More...
 
auto config_git_version_minor () noexcept -> valid_if_nonnegative< int >
 Returns minor version number. More...
 
auto config_git_version_patch () noexcept -> valid_if_nonnegative< int >
 Returns patch version number. More...
 
auto config_git_version_commit () noexcept -> valid_if_nonnegative< int >
 Returns commit version number. More...
 
auto config_git_version_tuple () noexcept -> std::tuple< int, int, int, int >
 Returns the complete version number as a tuple (major, minor, patch, commit). More...
 
template<std::size_t M>
static auto operator<< (std::ostream &out, const identifier_name< M > &n) -> std::ostream &
 Operator for writing identifier_name into output streams. More...
 
auto byte_to_identifier (byte b) noexcept -> identifier
 Creates an identifier representing a byte value as a hex string. More...
 
auto dec_to_identifier (int i) noexcept -> identifier
 Creates an identifier representing an integer value as a decimal string. More...
 
template<typename H , typename I >
auto integer_hash (I x, type_identity< H > hid={}, type_identity< I > iid={}) -> H
 Creates a hash value with type H from an integer value of type I.
 
template<typename B , typename E >
 integer_range (B, E) -> integer_range< std::common_type_t< B, E >>
 Deduction guide for integer_range.
 
static constexpr auto running_on_valgrind () noexcept -> tribool
 Indicates if the current process runs on top of valgrind.
 
template<typename Dst , typename Src >
static constexpr auto is_within_limits (Src value) noexcept
 Indicates if value fits into the specified Dst type. More...
 
template<typename Dst , typename Src >
static constexpr auto limit_cast (Src value) noexcept -> std::enable_if_t< std::is_convertible_v< Src, Dst >, Dst >
 Casts value to Dst type if the value fits in that type. More...
 
template<typename Dst , typename Src >
static constexpr auto convert_if_fits (Src value) noexcept -> std::enable_if_t< std::is_convertible_v< Src, Dst >, optionally_valid< Dst >>
 Optionally converts value to Dst type if the value fits in that type. More...
 
static constexpr auto is_log_level_enabled (log_event_severity severity) noexcept -> bool
 Function indicating if the specified log severity is enabled. More...
 
template<identifier_t ClassId, identifier_t MethodId>
auto operator== (message_id l, static_message_id< ClassId, MethodId > r) noexcept
 Equality comparison between message_id and static_message_id.
 
template<typename T >
static auto extract (optional_reference_wrapper< T > ref) noexcept -> T &
 Overload of extract for optional_reference_wrapper.
 
template<typename T >
static auto extract_or (optional_reference_wrapper< T > ref, T &fallback) noexcept -> T &
 Overload of extract_or for optional_reference_wrapper.
 
template<typename T , typename F >
static auto extract_or (optional_reference_wrapper< T > ref, F &&fallback) -> std::enable_if_t< std::is_convertible_v< F, T >, T >
 Overload of extract_or for optional_reference_wrapper.
 
template<typename T >
static constexpr auto seconds_ (T value) noexcept -> seconds_t< T >
 Creates a tagged quantity storing value in seconds.
 
template<typename T >
static constexpr auto radians_ (T value) noexcept -> radians_t< T >
 Creates a tagged quantity storing value in radians. More...
 
template<typename T >
static constexpr auto right_angles_ (T value) noexcept
 Creates a tagged quantity in units of right angle. More...
 
static constexpr auto right_angle_ () noexcept
 Creates a tagged quantity a right angle value. More...
 
template<typename T >
static constexpr auto turns_ (T value) noexcept
 Creates a tagged quantity in full turn units. More...
 
template<typename T >
static constexpr auto degrees_ (T value) noexcept -> degrees_t< T >
 Creates a tagged quantity storing value in degrees. More...
 
template<typename T >
static constexpr auto kelvins_ (T value) noexcept -> kelvins_t< T >
 Creates a tagged quantity storing value in kelvins.
 
auto random_identifier (any_random_engine< std::uint32_t > engine) -> identifier
 Creates an random identifier using the specified random engine. More...
 
auto random_identifier (any_random_engine< std::uint64_t > engine) -> identifier
 Creates an random identifier using the specified random engine. More...
 
auto random_identifier () -> identifier
 Creates an random identifier using a default random engine. More...
 
template<typename Func >
static auto finally (Func func) -> func_on_scope_exit< Func >
 Function constructing on-scope-exit actions. More...
 
template<identifier_t SerializerId, typename T , typename Selector = default_selector_t>
constexpr auto serialize_buffer_for (const T &inst, Selector sel={})
 Returns a buffer large enough for the serialization of the specified instance.
 
template<typename T , typename Backend >
auto deserialize (T &value, Backend &backend) -> std::enable_if_t< std::is_base_of_v< deserializer_backend, Backend >, deserialization_errors >
 Deserializes a value with the specified serialization backend. More...
 
template<typename T >
static auto get_errors (const serialization_result< T > &result) noexcept -> serialization_errors
 Returns the error bitfield from a serialization result.
 
template<typename T >
static auto get_errors (const deserialization_result< T > &result) noexcept -> deserialization_errors
 Returns the error bitfield from a deserialization result.
 
static auto store_data_with_size (memory::const_block src, memory::block dst) noexcept -> memory::block
 Encodes the size of the source block into destination, copies data afterwards. More...
 
static auto skip_data_with_size (memory::const_block src) noexcept -> span_size_t
 In a block starting with sub-block with size returns the size of the sub-block. More...
 
static auto get_data_with_size (memory::block src) noexcept -> memory::block
 Extracts a sub-block from a larger mutable block with encoded sub-block size. More...
 
static auto get_data_with_size (memory::const_block src) noexcept -> memory::const_block
 Extracts a sub-block from a larger const block with encoded sub-block size. More...
 
template<typename Function >
static void for_each_data_with_size (memory::const_block src, Function function) noexcept
 In a larger block with sub-blocks with size, calls function on each sub-block. More...
 
template<typename T , typename Backend >
auto serialize (T &value, Backend &backend) -> std::enable_if_t< std::is_base_of_v< serializer_backend, Backend >, serialization_errors >
 Serializes a value with the specified serialization backend. More...
 
template<span_size_t N>
static auto operator% (format_string_and_list< N > &&fsal, std::string &&val) noexcept -> format_string_and_list< N+1 >
 Operator for adding variable name and value for string formatting. More...
 
static auto format (std::string &&fmt_str) noexcept -> format_string_and_list< 0 >
 Function taking a format string, returning an object for variable specification.
 
auto substitute_variables_into (std::string &dst, string_view src, const callable_ref< optionally_valid< string_view >(string_view)> &translate, variable_substitution_options={}) -> std::string &
 Substitutes variable values by using translate, from src into dst. More...
 
auto substitute_variables (string_view src, const callable_ref< optionally_valid< string_view >(string_view)> &translate, variable_substitution_options={}) -> std::string
 Substitutes variable values by using translate, from src. More...
 
auto substitute_variables (const std::string &str, span< const std::string > strings, variable_substitution_options={}) -> std::string
 Substitutes variable values by using translate, from src into dst. More...
 
auto substitute_variables (const std::string &str, const std::map< std::string, std::string, str_view_less > &dictionary, variable_substitution_options={}) -> std::string
 Substitutes variable values by using translate, from src. More...
 
template<typename C , typename T , typename A , typename P1 , typename P2 , typename S1 , typename S2 >
auto string_replace (std::basic_string< C, T, A > &str, memory::basic_span< const C, P1, S1 > from, memory::basic_span< const C, P2, S2 > to) -> std::basic_string< C, T, A > &
 Replaces all occurrences of from with to in the given string.
 
template<typename C , typename T , typename A , typename P1 , typename P2 , typename S1 , typename S2 >
auto string_replace (std::basic_string< C, T, A > &str, span< const std::tuple< basic_string_span< const C, P1, S1 >, basic_string_span< const C, P2, S2 >>> dict) -> std::basic_string< C, T, A > &
 Replaces all occurrences of the string specifed in the dictionary.
 
template<typename C , typename P , typename S >
static constexpr auto std_view (memory::basic_span< C, P, S > spn) noexcept -> std::basic_string_view< std::remove_const_t< C >>
 Converts a basic_span of characters to string_span.
 
template<typename C , typename P , typename S >
static constexpr auto to_string (memory::basic_span< C, P, S > spn) -> std::basic_string< std::remove_const_t< C >>
 Converts a basic_span of characters to standard string.
 
template<typename C , typename T , typename A , typename P , typename S >
static constexpr auto assign_to (std::basic_string< C, T, A > &str, memory::basic_span< const C, P, S > spn) -> auto &
 Assigns the contents of a span of characters to a standard string.
 
template<typename C , typename T , typename A , typename P , typename S >
static constexpr auto append_to (std::basic_string< C, T, A > &str, memory::basic_span< const C, P, S > spn) -> auto &
 Appends the contents of a span of characters to a standard string.
 
template<typename C , typename P , typename S >
static constexpr auto c_str (memory::basic_span< C, P, S > s) -> std::enable_if_t< std::is_convertible_v< memory::basic_span< C, P, S >, basic_string_span< C, P, S >>, basic_c_str< C, P, S >>
 Functions that construct a basic_c_str from a basic_string_span.
 
constexpr auto operator&& (tribool a, tribool b) noexcept
 Tri-state boolean and operator.
 
constexpr auto operator|| (tribool a, tribool b) noexcept
 Tri-state boolean or operator.
 
template<typename T >
static constexpr auto make_identity (const T &) noexcept -> type_identity< T >
 Makes type_identity for type T of the argument.
 
template<typename T >
static auto type_name (const T &) noexcept -> std::string
 Returns the demangled name for type T. More...
 
template<typename T >
static auto type_name () noexcept -> std::string
 Returns the demangled name for type T. More...
 
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>>
static constexpr auto std_align (T v) noexcept
 Converts argument to std alignment type.
 
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>>
static constexpr auto std_size (T v) noexcept
 Converts argument to std size type.
 
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>>
static constexpr auto span_size (T v) noexcept
 Converts argument to span size type.
 
template<typename T >
static constexpr auto span_align_of (type_identity< T >={}) noexcept
 Returns the byte alignment of type T as span_size_t.
 
template<typename T >
static constexpr auto span_size_of (type_identity< T >={}) noexcept
 Returns the byte size of type T as span_size_t.
 
template<typename T , typename S >
static constexpr auto span_size_of (S n, type_identity< T >={}) noexcept
 Returns the total byte size of n elements of type T as span_size_t.
 
template<typename T , typename P1 , typename P2 >
static constexpr auto operator== (const valid_if< T, P1 > &v1, const valid_if< T, P2 > &v2) noexcept -> tribool
 Equality comparison of two conditionally valid values.
 
template<typename T , typename P1 , typename P2 >
static constexpr auto operator!= (const valid_if< T, P1 > &v1, const valid_if< T, P2 > &v2) noexcept -> tribool
 Non-equality comparison of two conditionally valid values.
 
template<typename T , typename P1 , typename P2 >
static constexpr auto operator< (const valid_if< T, P1 > &v1, const valid_if< T, P2 > &v2) noexcept -> tribool
 Less-than comparison of two conditionally valid values.
 
template<typename T , typename P1 , typename P2 >
static constexpr auto operator> (const valid_if< T, P1 > &v1, const valid_if< T, P2 > &v2) noexcept -> tribool
 Greater-than comparison of two conditionally valid values.
 
template<typename T , typename P1 , typename P2 >
static constexpr auto operator<= (const valid_if< T, P1 > &v1, const valid_if< T, P2 > &v2) noexcept -> tribool
 Less-equal comparison of two conditionally valid values.
 
template<typename T , typename P1 , typename P2 >
static constexpr auto operator>= (const valid_if< T, P1 > &v1, const valid_if< T, P2 > &v2) noexcept -> tribool
 Greater-equal comparison of two conditionally valid values.
 
template<typename T , typename P >
static constexpr auto extract (const valid_if< T, P > &opt) noexcept -> const T &
 Overload of extract for conditionally valid values. More...
 
template<typename T , typename P >
static constexpr auto extract (valid_if< T, P > &opt) noexcept -> T &
 Overload of extract for conditionally valid values. More...
 
template<typename T , typename P >
static constexpr auto extract (valid_if< T, P > &&opt) noexcept -> T &&
 Overload of extract for conditionally valid values. More...
 
template<typename T , typename P , typename F >
static constexpr auto extract_or (const valid_if< T, P > &opt, F &&fallback) noexcept -> std::enable_if_t< std::is_convertible_v< F, T >, T >
 Overload of extract_or for conditionally valid values.
 
template<typename T , typename P , typename F >
static constexpr auto extract_or (valid_if< T, P > &opt, T &fallback) noexcept -> T &
 Overload of extract_or for conditionally valid values.
 
template<typename T , typename P , typename F >
static auto either_or (valid_if< T, P > vi, F f) noexcept(noexcept(valid_if< T, P >(std::declval< valid_if< T, P > && >())) &&noexcept(F(std::declval< F && >()))) -> valid_if_or_fallback< T, P, F >
 Constructor function for valid_if_or_fallback.
 
template<typename T , typename P , typename L >
auto operator<< (std::ostream &out, const basic_valid_if< T, P, L > &v) -> auto &
 Operator for writing values of basic_valid_if to output streams.
 

Variables

template<typename T >
constexpr bool is_enum_class_v
 Trait indicating if type T is an enum_class. More...
 
template<typename C , typename V >
constexpr auto is_enum_class_value_v
 Trait indicating if type T is an enum_value, opt_enum_value or no_enum_value. More...
 
template<typename T >
constexpr const bool has_log_entry_adapter_v
 Trait indicating if there is a log entry adapter for type T. More...
 
template<log_event_severity severity>
static constexpr const bool is_log_level_enabled_v
 Compile-time trait indicating if the specified log severity is enabled. More...
 
template<typename T1 , typename T2 >
constexpr auto mp_plus_v
 Addition operation on types representing numbers. More...
 
template<typename T1 , typename T2 >
constexpr auto mp_minus_v
 Subtraction operation on types representing numbers. More...
 
template<typename T1 >
constexpr auto mp_negate_v
 Unary negation operation on types representing numbers. More...
 
template<typename TL >
constexpr const auto mp_is_empty_v
 Trait indicating whether a type list is empty. More...
 
template<typename TL , typename T >
constexpr const auto mp_contains_v
 Trait indicating whether a type list contains a specified type. More...
 
static constexpr nothing_t nothing
 Constant of nothing_t type. More...
 
constexpr const default_selector_t default_selector
 The default overload selector constant. More...
 
constexpr const construct_from_t construct_from
 The construct-from tag-dispatch constant. More...
 
constexpr static const indeterminate_t indeterminate
 Constant representing unspecified tribool value.
 

Detailed Description

Common code is placed in this namespace.

file. oglplus/example/main_glx.cpp

Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt

file. oglplus/example/main_sdl.cpp

Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt

Function Documentation

◆ config_git_branch()

auto eagine::config_git_branch ( ) -> valid_if_not_empty< string_view >
noexcept

Returns the name of the git branch from which the executable is built.

See also
config_git_date
config_git_hash_id
config_git_describe

◆ config_git_date()

auto eagine::config_git_date ( ) -> valid_if_not_empty< string_view >
noexcept

Returns the date of the commit from which the executable is built.

See also
config_git_hash_id

◆ config_git_describe()

auto eagine::config_git_describe ( ) -> valid_if_not_empty< string_view >
noexcept

Returns the description of the commit from which the executable is built.

See also
config_git_date
config_git_hash_id
config_git_branch

◆ config_git_hash_id()

auto eagine::config_git_hash_id ( ) -> valid_if_not_empty< string_view >
noexcept

Returns the hash of the commit from which the executable is built.

See also
config_git_date
config_git_branch

◆ config_git_version()

auto eagine::config_git_version ( ) -> valid_if_not_empty< string_view >
noexcept

◆ config_git_version_commit()

auto eagine::config_git_version_commit ( ) -> valid_if_nonnegative< int >
noexcept

◆ config_git_version_major()

auto eagine::config_git_version_major ( ) -> valid_if_nonnegative< int >
noexcept

◆ config_git_version_minor()

auto eagine::config_git_version_minor ( ) -> valid_if_nonnegative< int >
noexcept

◆ config_git_version_patch()

auto eagine::config_git_version_patch ( ) -> valid_if_nonnegative< int >
noexcept

◆ config_git_version_tuple()

auto eagine::config_git_version_tuple ( ) -> std::tuple< int, int, int, int >
noexcept

Returns the complete version number as a tuple (major, minor, patch, commit).

See also
config_git_version_major
config_git_version_minor
config_git_version_patch
config_git_version_commit

◆ extract() [1/8]

template<typename T >
static constexpr auto eagine::extract ( const std::shared_ptr< T > &  ptr) -> const T&
staticconstexprnoexcept

Checks ptr and dereferences it.

Precondition
bool(ptr)

◆ extract() [2/8]

template<typename T , typename D >
static constexpr auto eagine::extract ( const std::unique_ptr< T, D > &  ptr) -> const T&
staticconstexprnoexcept

Checks ptr and dereferences it.

Precondition
bool(ptr)

◆ extract() [3/8]

template<typename T , typename P >
static constexpr auto eagine::extract ( const valid_if< T, P > &  opt) -> const T&
staticconstexprnoexcept

Overload of extract for conditionally valid values.

Precondition
opt.is_valid()

◆ extract() [4/8]

template<typename T >
static constexpr auto eagine::extract ( std::shared_ptr< T > &  ptr) -> T&
staticconstexprnoexcept

Checks ptr and dereferences it.

Precondition
bool(ptr)

◆ extract() [5/8]

template<typename T , typename D >
static constexpr auto eagine::extract ( std::unique_ptr< T, D > &  ptr) -> T&
staticconstexprnoexcept

Checks ptr and dereferences it.

Precondition
bool(ptr)

◆ extract() [6/8]

template<typename T >
static constexpr auto eagine::extract ( T *  ptr) -> T&
staticconstexprnoexcept

Checks ptr and dereferences it.

Precondition
bool(ptr)

◆ extract() [7/8]

template<typename T , typename P >
static constexpr auto eagine::extract ( valid_if< T, P > &&  opt) -> T&&
staticconstexprnoexcept

Overload of extract for conditionally valid values.

Precondition
opt.is_valid()

◆ extract() [8/8]

template<typename T , typename P >
static constexpr auto eagine::extract ( valid_if< T, P > &  opt) -> T&
staticconstexprnoexcept

Overload of extract for conditionally valid values.

Precondition
opt.is_valid()

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).