33 #ifndef DRAIN_UNITUPLE_WRAPPER
34 #define DRAIN_UNITUPLE_WRAPPER
44 #include <drain/StringBuilder.h>
45 #include <drain/Type.h>
49 #include "TupleBase.h"
59 template <
class C,
typename T=
typename C::value_t,
size_t N=
sizeof(C)/
sizeof(T)>
65 typedef T
const* const_iterator;
67 static const size_t baseTypeSize;
69 const size_t elementCount;
76 throw std::runtime_error(
StringBuilder<>(__FUNCTION__,
": conflicting geometry ", N,
'x',
82 const_iterator begin()
const {
83 return static_cast<const_iterator
>((
void *)(
const C *)
this);
87 const_iterator end()
const {
88 return static_cast<const_iterator
>((
void *)(
const C *)
this) + N;
93 return static_cast<iterator
>((
void *)(
const C *)
this);
98 return static_cast<iterator
>((
void *)(
const C *)
this) + N;
106 template <
class C,
typename T,
size_t N>
111 template <
class C,
typename T,
size_t N>
114 static const std::string & str(){
Definition: PseudoTuple.h:60
Definition: StringBuilder.h:58
Definition: TupleBase.h:54
Definition: DataSelector.cpp:1277
static const std::string name
Default implementation: name returned by std::type_info::name()
Definition: Type.h:558