33#ifndef DRAIN_UNITUPLE_WRAPPER
34#define DRAIN_UNITUPLE_WRAPPER
44#include <drain/StringBuilder.h>
45#include <drain/TypeName.h>
56template <
class C,
typename T=
typename C::value_t,
size_t N=
sizeof(C)/
sizeof(T)>
62 typedef T
const* const_iterator;
64 static const size_t baseTypeSize;
66 const size_t elementCount;
73 throw std::runtime_error(
StringBuilder<>(__FUNCTION__,
": conflicting geometry ", N,
'x',
79 const_iterator begin()
const {
80 return static_cast<const_iterator
>((
void *)(
const C *)
this);
84 const_iterator end()
const {
85 return static_cast<const_iterator
>((
void *)(
const C *)
this) + N;
90 return static_cast<iterator
>((
void *)(
const C *)
this);
95 return static_cast<iterator
>((
void *)(
const C *)
this) + N;
103template <
class C,
typename T,
size_t N>
108template <
class C,
typename T,
size_t N>
111 static const std::string & str(){
Definition PseudoTuple.h:57
Definition StringBuilder.h:58
Definition TupleBase.h:75
Definition DataSelector.cpp:1277
Default implementation.
Definition TypeName.h:57