12#ifndef __cxz_index_format_cc_h__
13#define __cxz_index_format_cc_h__
29 template <
class FormatT>
32 CXZ_ASSERT(
f.size() == N,
"try to assign format of wrong dimension");
52 return std::get<I>(mB);
67 template <
class... PosT>
72 template <
class... PosT>
77 template <
class... PosT>
78 template <
class FormatT>
81 CXZ_ASSERT(
f.size() == size(),
"try to assign format of wrong dimension");
82 iter<0,
sizeof...(PosT)>( [&](
auto i) { std::get<i>(mB) =
f[
i].val(); },
NoF{} );
85 template <
class... PosT>
91 template <
class... PosT>
94 return CSizeT<
sizeof...(PosT)>{};
97 template <
class... PosT>
101 return std::get<I>(mB);
104 template <
class... PosT>
111 template <
class... PosT>
114 return GMFormat(std::move(std::make_tuple(
ps...)));
121 template <
class FormatT>
126 iter<0,
f.size()>( [&](
auto i) { mB[
i] =
f[
i]; },
NoF{} );
129 for(
SizeT i = 0;
i != mB.size(); ++
i){
#define CXZ_ASSERT(statement, errmsg)
std::integral_constant< SizeT, N > CSizeT
Sptr< Range > rangeCast(const RangePtr r)
constexpr decltype(auto) gmformat(const PosT &... ps)
constexpr decltype(auto) iter(const G &g, const F &f)