Go to the source code of this file.
Defines | |
#define | ICL_CORE_WRAP_VECTOR(TWrapper, TVector, access, wrapped) |
#define | ICL_CORE_WRAP_VECTOR_BODY(TWrapper, TVector, access, wrapped) |
#define | ICL_CORE_WRAP_VECTOR_CTOR(TWrapper, TVector, access, wrapped) |
#define | ICL_CORE_WRAP_VECTOR_CTOR_INIT(TWrapper, TVector, access, wrapped,...) |
#define | ICL_CORE_WRAP_VECTOR_HEADER(TWrapper, TVector, access, wrapped) |
#define | ICL_CORE_WRAP_VECTOR_HEADER_TYPENAME(TWrapper, TVector, access, wrapped) |
#define | ICL_CORE_WRAP_VECTOR_INIT(TWrapper, TVector, access, wrapped,...) |
#define | ICL_CORE_WRAP_VECTOR_TYPENAME(TWrapper, TVector, access, wrapped) |
#define | ICL_CORE_WRAP_VECTOR_TYPENAME_INIT(TWrapper, TVector, access, wrapped,...) |
Definition in file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped | |||
) |
ICL_CORE_WRAP_VECTOR_HEADER(TWrapper, TVector, acccess, wrapped); \ ICL_CORE_WRAP_VECTOR_CTOR(TWrapper, TVector, access, wrapped) \ ICL_CORE_WRAP_VECTOR_BODY(TWrapper, TVector, access, wrapped)
Helper macro to generate a thin wrapper around std::vector. This defines all the typedefs and methods provided by std::vector and passes them on to the wrapped object. The wrapped vector member variable is defined as well.
TWrapper | Typename of the wrapper class. |
TVector | Full typename of the wrapped vector template instance. |
access | Access level for the wrapped vector member variable (public, protected or private). |
wrapped | Name of the wrapped vector member variable. |
Definition at line 184 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_BODY | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped | |||
) |
Wrapper which passes through all methods of the wrapped std::vector to the wrapping class. This macro is needed by other macros defined later on. Do not use it directly.
Definition at line 67 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_CTOR | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped | |||
) |
TWrapper(const TVector& other) : wrapped(other) { } \ explicit TWrapper(const allocator_type& alloc = allocator_type()) \ : wrapped(alloc) \ { } \ explicit TWrapper(size_type count, \ const value_type& value = value_type()) \ : wrapped(count, value) \ { } \ template <class TInputIterator> \ TWrapper(TInputIterator first, TInputIterator last, \ const allocator_type& alloc = allocator_type()) \ : wrapped(first, last, alloc) \ { }
Wrapper for the usual std::vector constructors. This macro is needed by other macros defined later on. Do not use it directly.
Definition at line 125 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_CTOR_INIT | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped, | |||
... | |||
) |
TWrapper(const TVector& other) \ : wrapped(other), __VA_ARGS__ \ { } \ explicit TWrapper(const allocator_type& alloc = allocator_type()) \ : wrapped(alloc), __VA_ARGS__ \ { } \ explicit TWrapper(size_type count, \ const value_type& value = value_type()) \ : wrapped(count, value), __VA_ARGS__ \ { } \ template <class TInputIterator> \ TWrapper(TInputIterator first, TInputIterator last, \ const allocator_type& alloc = allocator_type()) \ : wrapped(first, last, alloc), __VA_ARGS__ \ { } \ \
Wrapper for the usual std::vector constructors, with initializer lists for custom members of the wrapping class. This macro is needed by other macros defined later on. Do not use it directly.
Definition at line 145 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_HEADER | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped | |||
) |
typedef TVector::value_type value_type; \
typedef TVector::allocator_type allocator_type; \
typedef TVector::size_type size_type; \
typedef TVector::difference_type difference_type; \
typedef TVector::reference reference; \
typedef TVector::const_reference const_reference; \
typedef TVector::pointer pointer; \
typedef TVector::const_pointer const_pointer; \
typedef TVector::iterator iterator; \
typedef TVector::const_iterator const_iterator; \
typedef TVector::reverse_iterator reverse_iterator; \
typedef TVector::const_reverse_iterator const_reverse_iterator
Passthrough typedefs for a vector datatype. This macro is needed by other macros defined later on. Do not use it directly.
Definition at line 29 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_HEADER_TYPENAME | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped | |||
) |
typedef typename TVector::value_type value_type; \ typedef typename TVector::allocator_type allocator_type; \ typedef typename TVector::size_type size_type; \ typedef typename TVector::difference_type difference_type; \ typedef typename TVector::reference reference; \ typedef typename TVector::const_reference const_reference; \ typedef typename TVector::pointer pointer; \ typedef typename TVector::const_pointer const_pointer; \ typedef typename TVector::iterator iterator; \ typedef typename TVector::const_iterator const_iterator; \ typedef typename TVector::reverse_iterator reverse_iterator; \ typedef typename TVector::const_reverse_iterator const_reverse_iterator
Passthrough typedefs for a template vector datatype (with a typename keyword). This macro is needed by other macros defined later on. Do not use it directly.
Definition at line 48 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_INIT | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped, | |||
... | |||
) |
ICL_CORE_WRAP_VECTOR_HEADER(TWrapper, TVector, access, wrapped); \ ICL_CORE_WRAP_VECTOR_CTOR_INIT(TWrapper, TVector, access, wrapped, __VA_ARGS__) \ ICL_CORE_WRAP_VECTOR_BODY(TWrapper, TVector, access, wrapped)
Helper macro to for a thin wrapper around std::vector, with custom member variable initializers. This defines all the typedefs and methods provided by std::vector and passes them on to the wrapped object. The wrapped vector member variable is defined as well.
TWrapper | Typename of the wrapper class. |
TVector | Full typename of the wrapped vector template instance. |
access | Access level for the wrapped vector member variable (public, protected or private). |
wrapped | Name of the wrapped vector member variable. |
... | Initializer list passed to all constructors (for custom member variables). |
Definition at line 239 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_TYPENAME | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped | |||
) |
ICL_CORE_WRAP_VECTOR_HEADER_TYPENAME(TWrapper, TVector, acccess, wrapped); \ ICL_CORE_WRAP_VECTOR_CTOR(TWrapper, TVector, access, wrapped) \ ICL_CORE_WRAP_VECTOR_BODY(TWrapper, TVector, access, wrapped)
Helper macro to generate a thin wrapper around std::vector<T> where T is a template parameter of the wrapping class. This defines all the typedefs and methods provided by std::vector and passes them on to the wrapped object. The wrapped vector member variable is defined as well.
TWrapper | Typename of the wrapper class. |
TVector | Full typename of the wrapped vector template instance. |
access | Access level for the wrapped vector member variable (public, protected or private). |
wrapped | Name of the wrapped vector member variable. |
Definition at line 211 of file VectorWrapper.h.
#define ICL_CORE_WRAP_VECTOR_TYPENAME_INIT | ( | TWrapper, | |
TVector, | |||
access, | |||
wrapped, | |||
... | |||
) |
ICL_CORE_WRAP_VECTOR_HEADER_TYPENAME(TWrapper, TVector, access, wrapped); \ ICL_CORE_WRAP_VECTOR_CTOR_INIT(TWrapper, TVector, access, wrapped, __VA_ARGS__) \ ICL_CORE_WRAP_VECTOR_BODY(TWrapper, TVector, access, wrapped)
Helper macro to generate a thin wrapper around std::vector<T> where T is a template parameter of the wrapping class, with custom member variable initializers. This defines all the typedefs and methods provided by std::vector and passes them on to the wrapped object. The wrapped vector member variable is defined as well.
TWrapper | Typename of the wrapper class. |
TVector | Full typename of the wrapped vector template instance. |
access | Access level for the wrapped vector member variable (public, protected or private). |
wrapped | Name of the wrapped vector member variable. |
... | Initializer list passed to all constructors (for custom member variables). |
Definition at line 268 of file VectorWrapper.h.