// -*- C++ -*- #ifndef __range_transformer_h__ #define __range_transformer_h__ #include #include "base_def.h" namespace MultiArrayTools { template MultiRange makeRange(const std::tuple& rangeTuple); template MultiRange combine(const Ranges&... ranges); template auto extend(const Range& r, const MultiRange& mr) -> decltype( MultiRange(std::tuple_cat( std::make_tuple(r), mr.space() ) ) ); template auto merge(const MultiRange1& mr1, const MultiRange2& mr2) -> decltype(makeRange( std::tuple_cat( mr1.space(), mr2.space() ) ) ); } #include "range_transformer.cc" #endif