Defines
VectorWrapper.h File Reference

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,...)

Detailed Description

Author:
Jan Oberlaender
Date:
2012-11-29

Definition in file VectorWrapper.h.


Define Documentation

#define ICL_CORE_WRAP_VECTOR (   TWrapper,
  TVector,
  access,
  wrapped 
)
Value:
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.

Note:
Use this version if your TVector does not depend on a template parameter of your wrapper class, and if you do not have any member variables of your own which need to be initialized in the generated constructors.
If you define copy constructors and assignment operators, you are responsible for initializing the wrapped vector yourself.
Parameters:
TWrapperTypename of the wrapper class.
TVectorFull typename of the wrapped vector template instance.
accessAccess level for the wrapped vector member variable (public, protected or private).
wrappedName 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 
)
Value:
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,
  ... 
)
Value:
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 
)
Value:
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 
)
Value:
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,
  ... 
)
Value:
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.

Note:
Use this version if your TVector does not depend on a template parameter of your wrapper class, and if you have member variables of your own which need to be initialized in the generated constructors.
If you define copy constructors and assignment operators, you are responsible for initializing the wrapped vector yourself.
Parameters:
TWrapperTypename of the wrapper class.
TVectorFull typename of the wrapped vector template instance.
accessAccess level for the wrapped vector member variable (public, protected or private).
wrappedName 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 
)
Value:
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.

Note:
Use this version if your TVector depends on a template parameter of your wrapper class, and if you do not have any member variables of your own which need to be initialized in the generated constructors.
If you define copy constructors and assignment operators, you are responsible for initializing the wrapped vector yourself.
Parameters:
TWrapperTypename of the wrapper class.
TVectorFull typename of the wrapped vector template instance.
accessAccess level for the wrapped vector member variable (public, protected or private).
wrappedName 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,
  ... 
)
Value:
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.

Note:
Use this version if your TVector depends on a template parameter of your wrapper class, and if you have member variables of your own which need to be initialized in the generated constructors.
If you define copy constructors and assignment operators, you are responsible for initializing the wrapped vector yourself.
Parameters:
TWrapperTypename of the wrapper class.
TVectorFull typename of the wrapped vector template instance.
accessAccess level for the wrapped vector member variable (public, protected or private).
wrappedName of the wrapped vector member variable.
...Initializer list passed to all constructors (for custom member variables).

Definition at line 268 of file VectorWrapper.h.



fzi_icl_core
Author(s):
autogenerated on Thu Jun 6 2019 20:22:26