lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
|
Defines classes that allow for the specification of enhanced type information, e.g. making named setter and getter methods enumerable at run-time, to be used in a generic way while at the same time retaining type safety. More...
Classes | |
class | property_setter |
Passes data to a specific destination. More... | |
class | property_getter |
Fetches data from a specific source. More... | |
class | property_type |
struct | destruct_property_data_policy |
struct | deallocate_property_data_policy |
struct | delete_property_data_policy |
class | scoped_property_data |
struct | property_desc |
Destribes a property. More... | |
struct | named_property_desc |
Describes a named property. More... | |
struct | ui_property_desc |
Describes a UI property. More... | |
class | property_constant |
Holds a constant array of values, returning a matching subset of these on getter access. More... | |
class | property_n_setter |
Provides write access to arbitrary object data of the given type using a given setter method. More... | |
class | property_n_getter |
Provides read access to arbitrary object data of the given type using a given getter method. More... | |
struct | property_n_accessor_binder |
property_n_* factory class. More... | |
class | property_c_setter |
Provides write access to arbitrary object data of the given type using a given multi-parameter setter method. More... | |
class | property_c_getter |
Provides read access to arbitrary object data of the given type using a given multi-parameter getter method. More... | |
struct | property_c_accessor_binder |
property_c_* factory class. More... | |
class | property_r_getter |
Provides read access to arbitrary object data of the given type using a given return-value getter method. More... | |
struct | property_r_accessor_binder |
property_r_* factory class. More... | |
class | property_collection |
Container class that may be used to store information on class / object properties. More... | |
struct | generic_property_type |
Generic property type implementation. More... | |
Functions | |
template<class Class , class Value > | |
LEAN_INLINE bool | set_property (Class &object, property_setter< Class > *setter, const Value *values, size_t count) |
Passes the given values to the given object using the given setter. | |
template<class Class , class Value > | |
LEAN_INLINE bool | set_property (Class &object, cloneable_obj< property_setter< Class >, false > &setter, const Value *values, size_t count) |
Passes the given values to the given object using the given setter. | |
template<class Class , class Value > | |
LEAN_INLINE bool | set_property (Class &object, const cloneable_obj< property_setter< Class >, true > &setter, const Value *values, size_t count) |
Passes the given values to the given object using the given setter. | |
template<class Class , class Value > | |
LEAN_INLINE bool | get_property (const Class &object, const property_getter< Class > *getter, Value *values, size_t count) |
Fetches the given number of values from the given object. | |
template<class Class , class Value , bool PointerSem> | |
LEAN_INLINE bool | get_property (const Class &object, const cloneable_obj< property_getter< Class >, PointerSem > &getter, Value *values, size_t count) |
Fetches the given number of values from the given object. | |
template<class String , class Collection , class ID > | |
size_t | find_property (const Collection &collection, const String &name, ID invalidID=invalid_property_id) |
Finds a property by name, returning its ID on success, invalid_property_id on failure. | |
template<class Class , class Value > | |
LEAN_INLINE property_constant < Class, Value > | make_property_constant (const Value *constantValues, size_t count) |
Constructs a property getter that provides access to the given number of the given values. | |
template<class Class , class UnionValue , class Count , class Return > | |
LEAN_INLINE property_n_accessor_binder < Class, UnionValue, Count, Return > | deduce_accessor_binder (Return(Class::*)(const UnionValue *, Count)) |
Deduces the property_n_* factory class for the given setter. | |
template<class Class , class UnionValue , class Count , class Return > | |
LEAN_INLINE property_n_accessor_binder < Class, UnionValue, Count, Return > | deduce_accessor_binder (Return(Class::*)(UnionValue *, Count) const) |
Deduces the property_n_* factory class for the given getter. | |
template<class Class , class UnionValueArg , class Return > | |
LEAN_INLINE property_c_accessor_binder < Class, UnionValueArg, 1, Return > | deduce_accessor_binder (Return(Class::*)(UnionValueArg)) |
Deduces the property_c_* factory class for the given setter. | |
template<class Class , class UnionValueArg , class Return > | |
LEAN_INLINE property_c_accessor_binder < Class, UnionValueArg, 2, Return > | deduce_accessor_binder (Return(Class::*)(UnionValueArg, UnionValueArg)) |
Deduces the property_c_* factory class for the given setter. | |
template<class Class , class UnionValueArg , class Return > | |
LEAN_INLINE property_c_accessor_binder < Class, UnionValueArg, 3, Return > | deduce_accessor_binder (Return(Class::*)(UnionValueArg, UnionValueArg, UnionValueArg)) |
Deduces the property_c_* factory class for the given setter. | |
template<class Class , class UnionValueArg , class Return > | |
LEAN_INLINE property_c_accessor_binder < Class, UnionValueArg, 4, Return > | deduce_accessor_binder (Return(Class::*)(UnionValueArg, UnionValueArg, UnionValueArg, UnionValueArg)) |
Deduces the property_c_* factory class for the given setter. | |
template<class Class , class UnionValueReturn > | |
LEAN_INLINE property_r_accessor_binder < Class, UnionValueReturn > | deduce_accessor_binder (UnionValueReturn(Class::*Getter)() const) |
Deduces the property_r_* factory class for the given getter. | |
template<class Type > | |
LEAN_INLINE const property_type & | get_property_type () |
Gets the property type info for the given type. |
Defines classes that allow for the specification of enhanced type information, e.g. making named setter and getter methods enumerable at run-time, to be used in a generic way while at the same time retaining type safety.
LEAN_INLINE property_c_accessor_binder< Class, UnionValueArg, 1, Return > lean::properties::deduce_accessor_binder | ( | Return(Class::*)(UnionValueArg) | ) |
Deduces the property_c_* factory class for the given setter.
Deduces the property_c_* factory class for the given getter.
LEAN_INLINE property_c_accessor_binder< Class, UnionValueArg, 2, Return > lean::properties::deduce_accessor_binder | ( | Return(Class::*)(UnionValueArg, UnionValueArg) | ) |
Deduces the property_c_* factory class for the given setter.
Deduces the property_c_* factory class for the given getter.
LEAN_INLINE property_c_accessor_binder< Class, UnionValueArg, 3, Return > lean::properties::deduce_accessor_binder | ( | Return(Class::*)(UnionValueArg, UnionValueArg, UnionValueArg) | ) |
Deduces the property_c_* factory class for the given setter.
Deduces the property_c_* factory class for the given getter.
LEAN_INLINE property_c_accessor_binder< Class, UnionValueArg, 4, Return > lean::properties::deduce_accessor_binder | ( | Return(Class::*)(UnionValueArg, UnionValueArg, UnionValueArg, UnionValueArg) | ) |
Deduces the property_c_* factory class for the given setter.
Deduces the property_c_* factory class for the given getter.