12#ifndef __cxz_h5_group_cc_h__
13#define __cxz_h5_group_cc_h__
22 template <SizeT I,
typename...
Ts>
25 return std::get<
sizeof...(Ts)-I-1>(
t);
28 template <
SizeT I,
typename...
Ts>
31 return std::get<
sizeof...(Ts)-I-1>(
t);
34 template <
SizeT N,
typename...
Ts>
42 template <
typename...
Ts>
47 "element '" <<
name <<
"' is not of type TABLE");
48 auto tab = std::dynamic_pointer_cast<Table>( *
i );
50 auto stab = std::dynamic_pointer_cast<
STable<
Ts...>>(*i);
67 "element '" <<
name <<
"' is not of type DSET");
68 auto dset = std::dynamic_pointer_cast<Dataset>( *
i );
70 auto sdset = std::dynamic_pointer_cast<SDataset<T>>(*i);
76 auto sdset = std::make_shared<SDataset<T>>(
name,
this);
89 auto dset = std::make_shared<SDataset<T>>(
name,
this);
95 template <
typename...
Ts>
114 CXZ_ASSERT(isOpen(),
"try to iterate over closed object");
116 auto gi = std::make_shared<UIndex<String>>(
gr);
123 return iter( [&](
const auto& c) {
125 recursion(c, std::forward<F>(
f));
132 CXZ_ASSERT(isOpen(),
"try to iterate over closed object");
134 auto gi = std::make_shared<UIndex<String>>(
gr);
141 return iter( [&](
const auto& c) {
143 recursion(c, std::forward<F>(
f));
#define CXZ_ASSERT(statement, errmsg)
MArray & extend(const RangePtr &range)
const String & name() const
Group & addDataset(const String &name, const ArrayBase< T > &data)
decltype(auto) iterRecursive(F &&f) const
Sptr< Dataset > getDataset(const String &name) const
decltype(auto) iter(F &&f) const
MArray< ContentPtr > mCont
Sptr< Table > getTable(const String &name) const
Group & addTable(const String &name, const ArrayBase< Tuple< Ts... > > &data, const Arr< String, sizeof...(Ts)> &fnames)
AIndex< ContentPtr > getIndexTo(const String &name) const
STable & appendRecord(const Tuple< Ts... > &t)
For expressions declarations.
constexpr const auto & tget(const Tuple< Ts... > &t)
SizeT getTupleOffset(const Tuple< Ts... > &t, CSizeT< N > i)
Sptr< RangeBase > RangePtr
std::vector< T, Allocator< T > > Vector
std::integral_constant< SizeT, N > CSizeT
Sptr< Range > rangeCast(const RangePtr r)
constexpr decltype(auto) operation(F &&f, const Ops &... ops)
std::shared_ptr< T > Sptr
constexpr decltype(auto) iter(const G &g, const F &f)