12#ifndef __cxz_h5_table_cc_h__ 
   13#define __cxz_h5_table_cc_h__ 
   25        auto ri = std::make_shared<CIndex>(mRecords);
 
 
   32    template <
typename... 
Ts>
 
   40    template <
typename... 
Ts>
 
   44        constexpr SizeT N = 
sizeof...(Ts);
 
   56                  "wrong size for field " << 
i << 
": " << 
sizeof(
tget<i>(x))
 
   60                  "wrong type for field " << 
i 
 
   66    template <
typename... 
Ts>
 
   74    template <
typename... 
Ts>
 
   77        constexpr SizeT N = 
sizeof...(Ts);
 
   79               "tried to initialize an existing table");
 
   82        for(
SizeT i = 0; 
i != fields.size(); ++
i){
 
   95          ( [&](
auto i) { 
return sizeof(
tget<i>(x)); },
 
 
  104    template <
typename... 
Ts>
 
  108        if(mRecords == 
nullptr){
 
  109        initTable(1, &
t, 
sizeof(
t), 
sizeof(
t));
 
 
  117    template <
typename... 
Ts>
 
  120        CXZ_ASSERT(isOpen(), 
"attempt to read table that has not been opened");
 
  122        H5TBread_table(mParent->id(), mName.c_str(), mTypesize, mOffsets.data(),
 
  123               mSizes.data(), 
out.data());
 
 
#define CXZ_ERROR(errmsg)
#define CXZ_ASSERT(statement, errmsg)
virtual const T * data() const override
STable(const String &name, const ContentBase *_parent)
MArray< Tuple< Ts... > > read() const
STable & appendRecord(const Tuple< Ts... > &t)
STable & initFields(const Arr< String, sizeof...(Ts)> &fnames)
Table & appendRecords(SizeT n, const void *data)
decltype(auto) iterRecords(F &&f) const
TypeId template declaration.
SizeT getTupleOffset(const Tuple< Ts... > &t, CSizeT< N > i)
Sptr< RangeBase > RangePtr
std::vector< T, Allocator< T > > Vector
decltype(auto) xpr(const Sptr< I > &i)
Sptr< Range > rangeCast(const RangePtr r)
constexpr decltype(auto) operation(F &&f, const Ops &... ops)