diff --git a/src/include/helper_tools.cc.h b/src/include/helper_tools.cc.h index e08b5fa..e7b6268 100644 --- a/src/include/helper_tools.cc.h +++ b/src/include/helper_tools.cc.h @@ -99,18 +99,18 @@ namespace MultiArrayTools template auto mkGenMapR(const std::tuple& f, std::shared_ptr... ranges) - -> std::shared_ptr > + -> std::shared_ptr,Op,STYPE,RangeTypes...> > { - GenMapRangeFactory mrf(f, ranges... ); + GenMapRangeFactory,Op,STYPE,RangeTypes...> mrf(f, ranges... ); return createExplicit( mrf ); } - template - auto mkGenMapRwith(const std::shared_ptr>& outr, const std::tuple& f, + template + auto mkGenMapRwith(const std::shared_ptr& outr, const std::tuple& f, std::shared_ptr... ranges) - -> std::shared_ptr > + -> std::shared_ptr > { - GenMapRangeFactory mrf(outr, f, ranges... ); + GenMapRangeFactory mrf(outr, f, ranges... ); return createExplicit( mrf ); } @@ -130,8 +130,8 @@ namespace MultiArrayTools return mkGenMapR(f, ranges... ); } - template - auto mkMapRwith(const std::shared_ptr>& outr, const std::tuple& f, + template + auto mkMapRwith(const std::shared_ptr& outr, const std::tuple& f, std::shared_ptr... ranges) -> decltype( mkGenMapRwith(outr, f, ranges... ) ) { @@ -145,8 +145,8 @@ namespace MultiArrayTools return mkMapR( mkMapOp( func, is... ), is->range()... ); } - template - auto mkMapRwith(const std::shared_ptr>& outr, const std::shared_ptr& func, const std::shared_ptr&... is) + template + auto mkMapRwith(const std::shared_ptr& outr, const std::shared_ptr& func, const std::shared_ptr&... is) -> decltype( mkMapRwith(outr, mkMapOp( func, is... ), is->range()... ) ) { return mkMapRwith(outr, mkMapOp( func, is... ), is->range()... ); diff --git a/src/include/helper_tools.h b/src/include/helper_tools.h index c7f26de..77fac38 100644 --- a/src/include/helper_tools.h +++ b/src/include/helper_tools.h @@ -28,17 +28,17 @@ namespace MultiArrayTools auto mkMulti(std::shared_ptr... ranges) -> std::shared_ptr >; - template - auto mkGenMapR(const std::tuple& f, std::shared_ptr... ranges) - -> std::shared_ptr >; - template using MapORType = SingleRange; - + template - auto mkGenMapRwith(const std::shared_ptr>& outr, const std::tuple& f, + auto mkGenMapR(const std::tuple& f, std::shared_ptr... ranges) + -> std::shared_ptr,Op,STYPE,RangeTypes...> >; + + template + auto mkGenMapRwith(const std::shared_ptr& outr, const std::tuple& f, std::shared_ptr... ranges) - -> std::shared_ptr >; + -> std::shared_ptr >; template auto mkGenMapI(const std::tuple& f, std::shared_ptr... indices) @@ -48,23 +48,18 @@ namespace MultiArrayTools auto mkMapR(const std::tuple& f, std::shared_ptr... ranges) -> decltype( mkGenMapR(f, ranges... ) ); - template - auto mkMapRwith(const std::shared_ptr>& outr, const std::tuple& f, std::shared_ptr... ranges) + template + auto mkMapRwith(const std::shared_ptr& outr, const std::tuple& f, std::shared_ptr... ranges) -> decltype( mkGenMapRwith(outr, f, ranges... ) ); template auto mkMapR(const std::shared_ptr& func, const std::shared_ptr&... is) -> decltype( mkMapR( mkMapOp( func, is... ), is->range()... ) ); - template - auto mkMapRwith(const std::shared_ptr>& outr, const std::shared_ptr& func, const std::shared_ptr&... is) + template + auto mkMapRwith(const std::shared_ptr& outr, const std::shared_ptr& func, const std::shared_ptr&... is) -> decltype( mkMapRwith(outr, mkMapOp( func, is... ), is->range()... ) ); - template - auto mkMapRwith(const std::shared_ptr>& outr, const std::tuple& f, - std::shared_ptr... ranges) - -> decltype( mkGenMapRwith(outr, f, ranges... ) ); - template auto mkMapI(const std::tuple& f, std::shared_ptr... indices) -> decltype( mkGenMapI(f, indices... ) ); diff --git a/src/include/map_range.cc.h b/src/include/map_range.cc.h index 29bf21d..678b32e 100644 --- a/src/include/map_range.cc.h +++ b/src/include/map_range.cc.h @@ -90,10 +90,10 @@ namespace MultiArrayTools } */ - template + template template - GenMapIndex::GenMapIndex(const std::shared_ptr& range) : - IndexInterface,typename Op::value_type>(range, 0) + GenMapIndex::GenMapIndex(const std::shared_ptr& range) : + IndexInterface,typename Op::value_type>(range, 0) { RPackNum::construct(mIPack, *range); IB::mPos = RPackNum::makePos(mIPack); @@ -103,9 +103,9 @@ namespace MultiArrayTools ( std::dynamic_pointer_cast( IB::mRangePtr )->outRange()->begin() ); } - template + template template - GenMapIndex& GenMapIndex::up() + GenMapIndex& GenMapIndex::up() { static_assert(DIR < sizeof...(Indices), "DIR exceeds number of sub-indices"); IB::mPos += RPackNum::blockSize( mIPack ); @@ -113,9 +113,9 @@ namespace MultiArrayTools return *this; } - template + template template - GenMapIndex& GenMapIndex::down() + GenMapIndex& GenMapIndex::down() { static_assert(DIR < sizeof...(Indices), "DIR exceeds number of sub-indices"); IB::mPos -= RPackNum::blockSize( mIPack ); @@ -123,42 +123,42 @@ namespace MultiArrayTools return *this; } - template + template template - auto GenMapIndex::get() const -> decltype( *std::get( mIPack ) )& + auto GenMapIndex::get() const -> decltype( *std::get( mIPack ) )& { return *std::get(mIPack); } - template + template template - auto GenMapIndex::getPtr() const -> decltype( std::get( mIPack ) )& + auto GenMapIndex::getPtr() const -> decltype( std::get( mIPack ) )& { return std::get(mIPack); } - template - auto GenMapIndex::outIndex() const -> std::shared_ptr + template + auto GenMapIndex::outIndex() const -> std::shared_ptr { return mOutIndex; } - template - GenMapIndex& GenMapIndex::operator()(const std::shared_ptr&... indices) + template + GenMapIndex& GenMapIndex::operator()(const std::shared_ptr&... indices) { RPackNum::swapIndices(mIPack, indices...); RPackNum::setIndexPack(mIPack, IB::mPos); return *this; } - template - IndexType GenMapIndex::type() const + template + IndexType GenMapIndex::type() const { return IndexType::MULTI; } - template - GenMapIndex& GenMapIndex::operator=(size_t pos) + template + GenMapIndex& GenMapIndex::operator=(size_t pos) { (*mOutIndex) = pos; IB::mPos = mOutIndex->pos(); @@ -166,8 +166,8 @@ namespace MultiArrayTools return *this; } - template - GenMapIndex& GenMapIndex::operator++() + template + GenMapIndex& GenMapIndex::operator++() { //RPackNum::pp( mIPack ); ++(*mOutIndex); @@ -175,8 +175,8 @@ namespace MultiArrayTools return *this; } - template - GenMapIndex& GenMapIndex::operator--() + template + GenMapIndex& GenMapIndex::operator--() { //RPackNum::mm( mIPack ); --(*mOutIndex); @@ -184,8 +184,8 @@ namespace MultiArrayTools return *this; } - template - int GenMapIndex::pp(std::intptr_t idxPtrNum) + template + int GenMapIndex::pp(std::intptr_t idxPtrNum) { //int tmp = RPackNum::pp(mIPack, mBlockSizes, idxPtrNum); mOutIndex->pp(idxPtrNum); @@ -194,8 +194,8 @@ namespace MultiArrayTools return 1; } - template - int GenMapIndex::mm(std::intptr_t idxPtrNum) + template + int GenMapIndex::mm(std::intptr_t idxPtrNum) { //int tmp = RPackNum::mm(mIPack, mBlockSizes, idxPtrNum); mOutIndex->mm(idxPtrNum); @@ -204,14 +204,14 @@ namespace MultiArrayTools return 1; } - template - std::string GenMapIndex::stringMeta() const + template + std::string GenMapIndex::stringMeta() const { return std::dynamic_pointer_cast( IB::mRangePtr )->stringMeta(IB::mPos); } - template - typename GenMapIndex::MetaType GenMapIndex::meta() const + template + typename GenMapIndex::MetaType GenMapIndex::meta() const { //MetaType metaTuple; //RPackNum::getMetaPos(metaTuple, mIPack); @@ -219,8 +219,8 @@ namespace MultiArrayTools return mOutIndex->meta(); } - template - GenMapIndex& GenMapIndex::at(const MetaType& metaPos) + template + GenMapIndex& GenMapIndex::at(const MetaType& metaPos) { //RPackNum::setMeta(mIPack, metaPos); //IB::mPos = RPackNum::makePos(mIPack); @@ -229,46 +229,46 @@ namespace MultiArrayTools return *this; } - template - size_t GenMapIndex::posAt(const MetaType& metaPos) const + template + size_t GenMapIndex::posAt(const MetaType& metaPos) const { return range()->outRange()->getMeta(metaPos); } - template - size_t GenMapIndex::dim() const + template + size_t GenMapIndex::dim() const { return sizeof...(Indices); } - template - bool GenMapIndex::first() const + template + bool GenMapIndex::first() const { return IB::mPos == 0; } - template - bool GenMapIndex::last() const + template + bool GenMapIndex::last() const { return IB::mPos == IB::mMax - 1; } - template - std::shared_ptr::RangeType> - GenMapIndex::range() const + template + std::shared_ptr::RangeType> + GenMapIndex::range() const { return std::dynamic_pointer_cast( IB::mRangePtr ); } - template + template template - auto GenMapIndex::getPtr() -> decltype( std::get( mIPack ) )& + auto GenMapIndex::getPtr() -> decltype( std::get( mIPack ) )& { return std::get(mIPack); } - template - size_t GenMapIndex::getStepSize(size_t n) const + template + size_t GenMapIndex::getStepSize(size_t n) const { if(n >= sizeof...(Indices)){ assert(0); @@ -277,14 +277,14 @@ namespace MultiArrayTools return mBlockSizes[n+1]; } - template - std::string GenMapIndex::id() const + template + std::string GenMapIndex::id() const { return std::string("mul") + std::to_string(IB::mId); } - template - void GenMapIndex::print(size_t offset) const + template + void GenMapIndex::print(size_t offset) const { if(offset == 0){ std::cout << " === " << std::endl; @@ -295,29 +295,29 @@ namespace MultiArrayTools RPackNum::printIndex(mIPack, offset+1); } - template + template template - auto GenMapIndex::ifor(size_t step, Exprs exs) const + auto GenMapIndex::ifor(size_t step, Exprs exs) const -> decltype(RPackNum::mkForh - (step, mIPack, mBlockSizes, OpExpr,Exprs,XSTYPE> + (step, mIPack, mBlockSizes, OpExpr,Exprs,XSTYPE> ( range()->map(), this, step, exs ) ) ) { return RPackNum::mkForh - (0, mIPack, mBlockSizes, OpExpr,Exprs,XSTYPE> + (0, mIPack, mBlockSizes, OpExpr,Exprs,XSTYPE> ( range()->map(), this, step, exs ) ); } - template + template template - auto GenMapIndex::pifor(size_t step, Exprs exs) const + auto GenMapIndex::pifor(size_t step, Exprs exs) const -> decltype(ifor(step, exs)) { return ifor(step, exs); } - template + template template - auto GenMapIndex::iforh(size_t step, Exprs exs) const + auto GenMapIndex::iforh(size_t step, Exprs exs) const -> decltype(ifor(step, exs)) { return ifor(step, exs); @@ -327,54 +327,54 @@ namespace MultiArrayTools * MapRangeFactory * *************************/ - template + template template - GenMapRangeFactory::GenMapRangeFactory(const std::shared_ptr& outr, + GenMapRangeFactory::GenMapRangeFactory(const std::shared_ptr& outr, const std::tuple& mapf, const std::shared_ptr&... rs) { - mProd = std::shared_ptr< GenMapRange > - ( new GenMapRange( outr, mapf, rs... ) ); + mProd = std::shared_ptr< GenMapRange > + ( new GenMapRange( outr, mapf, rs... ) ); } - template + template template - GenMapRangeFactory::GenMapRangeFactory(const std::shared_ptr& outr, + GenMapRangeFactory::GenMapRangeFactory(const std::shared_ptr& outr, const std::tuple& mapf, - const typename GenMapRange::Space& st) + const typename GenMapRange::Space& st) { - mProd = std::shared_ptr< GenMapRange > - ( new GenMapRange( outr, mapf, st ) ); + mProd = std::shared_ptr< GenMapRange > + ( new GenMapRange( outr, mapf, st ) ); } - template + template template - GenMapRangeFactory::GenMapRangeFactory(const std::tuple& mapf, + GenMapRangeFactory::GenMapRangeFactory(const std::tuple& mapf, const std::shared_ptr&... rs) { - mProd = std::shared_ptr< GenMapRange > - ( new GenMapRange( mapf, rs... ) ); + mProd = std::shared_ptr< GenMapRange > + ( new GenMapRange( mapf, rs... ) ); } - template + template template - GenMapRangeFactory::GenMapRangeFactory(const std::tuple& mapf, - const typename GenMapRange::Space& st) + GenMapRangeFactory::GenMapRangeFactory(const std::tuple& mapf, + const typename GenMapRange::Space& st) { - mProd = std::shared_ptr< GenMapRange > - ( new GenMapRange( mapf, st ) ); + mProd = std::shared_ptr< GenMapRange > + ( new GenMapRange( mapf, st ) ); } - template - std::shared_ptr GenMapRangeFactory::create() + template + std::shared_ptr GenMapRangeFactory::create() { mProd = checkIfCreated( std::dynamic_pointer_cast( mProd )->mSpace ); setSelf(); return mProd; } - template - std::shared_ptr GenMapRangeFactory::checkIfCreated(const std::tuple...>& ptp) + template + std::shared_ptr GenMapRangeFactory::checkIfCreated(const std::tuple...>& ptp) { std::shared_ptr out; bool check = false; @@ -463,9 +463,9 @@ namespace MultiArrayTools } }; - template + template template - void GenMapRange::mkOutRange(const MA& mapf) + void GenMapRange::mkOutRange(const MA& mapf) { //FunctionalMultiArray fma(mSpace, mMapf); OutRangeMaker::mk(mOutRange,mMapMult,mapf); @@ -477,9 +477,9 @@ namespace MultiArrayTools } - template + template template - GenMapRange::GenMapRange(const std::shared_ptr& outr, const std::tuple& mapf, + GenMapRange::GenMapRange(const std::shared_ptr& outr, const std::tuple& mapf, const std::shared_ptr&... rs) : mSpace(std::make_tuple(rs...)), mMapf(std::get<0>(mapf)), @@ -495,9 +495,9 @@ namespace MultiArrayTools } } - template + template template - GenMapRange::GenMapRange(const std::shared_ptr& outr, const std::tuple& mapf, + GenMapRange::GenMapRange(const std::shared_ptr& outr, const std::tuple& mapf, const Space& space) : mSpace(space), mMapf(std::get<0>(mapf)), @@ -513,9 +513,9 @@ namespace MultiArrayTools } } - template + template template - GenMapRange::GenMapRange(const std::tuple& mapf, + GenMapRange::GenMapRange(const std::tuple& mapf, const std::shared_ptr&... rs) : mSpace(std::make_tuple(rs...)), mMapf(std::get<0>(mapf)) @@ -523,76 +523,76 @@ namespace MultiArrayTools mkOutRange(std::get<1>(mapf)); } - template + template template - GenMapRange::GenMapRange(const std::tuple& mapf, const Space& space) : + GenMapRange::GenMapRange(const std::tuple& mapf, const Space& space) : mSpace( space ), mMapf(std::get<0>(mapf)) { mkOutRange(std::get<1>(mapf)); } - template + template template - auto GenMapRange::get() const -> decltype( *std::get( mSpace ) )& + auto GenMapRange::get() const -> decltype( *std::get( mSpace ) )& { return *std::get(mSpace); } - template + template template - auto GenMapRange::getPtr() const -> decltype( std::get( mSpace ) )& + auto GenMapRange::getPtr() const -> decltype( std::get( mSpace ) )& { return std::get(mSpace); } - template - auto GenMapRange::outRange() const -> std::shared_ptr + template + auto GenMapRange::outRange() const -> std::shared_ptr { return mOutRange; } - template - const Op& GenMapRange::map() const + template + const Op& GenMapRange::map() const { return mMapf; } - template - size_t GenMapRange::dim() const + template + size_t GenMapRange::dim() const { return sdim; } - template - size_t GenMapRange::size() const + template + size_t GenMapRange::size() const { return mOutRange->size(); //return RPackNum::getSize(mSpace); } - template - SpaceType GenMapRange::spaceType() const + template + SpaceType GenMapRange::spaceType() const { return SpaceType::ANY; } - template - const typename GenMapRange::Space& GenMapRange::space() const + template + const typename GenMapRange::Space& GenMapRange::space() const { return mSpace; } - template - vector GenMapRange::typeNum() const + template + vector GenMapRange::typeNum() const { vector o; RPackNum::getTypeNum(o,mSpace); return o; } - template - size_t GenMapRange::cmeta(char* target, size_t pos) const + template + size_t GenMapRange::cmeta(char* target, size_t pos) const { //MetaType* xtarget = reinterpret_cast(target); assert(0); @@ -600,22 +600,22 @@ namespace MultiArrayTools //return RPackNum::getCMeta(xtarget,pos,mSpace,cmetaSize()); } - template - size_t GenMapRange::cmetaSize() const + template + size_t GenMapRange::cmetaSize() const { return RPackNum::getCMetaSize(mSpace); } - template - std::string GenMapRange::stringMeta(size_t pos) const + template + std::string GenMapRange::stringMeta(size_t pos) const { auto i = begin(); i = pos; return "[ " + RPackNum::getStringMeta(i) + " ]"; } - template - vector GenMapRange::data() const + template + vector GenMapRange::data() const { DataHeader h = dataHeader(); vector out; @@ -626,8 +626,8 @@ namespace MultiArrayTools return out; } - template - DataHeader GenMapRange::dataHeader() const + template + DataHeader GenMapRange::dataHeader() const { DataHeader h; h.spaceType = static_cast( SpaceType::ANY ); @@ -636,56 +636,56 @@ namespace MultiArrayTools return h; } - template - typename GenMapRange::IndexType GenMapRange::begin() const + template + typename GenMapRange::IndexType GenMapRange::begin() const { - GenMapIndex - i( std::dynamic_pointer_cast > + GenMapIndex + i( std::dynamic_pointer_cast > ( std::shared_ptr( RB::mThis ) ) ); i = 0; return i; } - template - typename GenMapRange::IndexType GenMapRange::end() const + template + typename GenMapRange::IndexType GenMapRange::end() const { - GenMapIndex - i( std::dynamic_pointer_cast > + GenMapIndex + i( std::dynamic_pointer_cast > ( std::shared_ptr( RB::mThis )) ); i = size(); return i; } - template - auto GenMapRange::mapMultiplicity() const + template + auto GenMapRange::mapMultiplicity() const -> const MultiArray& { return mMapMult; } - template - auto GenMapRange::explMapMultiplicity() const + template + auto GenMapRange::explMapMultiplicity() const -> ConstSlice { /* auto tmp = mMapMult; - return tmp.format( std::dynamic_pointer_cast > + return tmp.format( std::dynamic_pointer_cast > ( std::shared_ptr( RB::mThis )) ); */ - return mMapMult.slformat(std::dynamic_pointer_cast > + return mMapMult.slformat(std::dynamic_pointer_cast > ( std::shared_ptr( RB::mThis ))); } - template - vector GenMapRange::mapPos() const + template + vector GenMapRange::mapPos() const { return mMapPos; } /* - template + template template - auto GenMapRange::cat(const std::shared_ptr >& erange) + auto GenMapRange::cat(const std::shared_ptr >& erange) -> std::shared_ptr > { auto crange = std::tuple_cat(mSpace, erange->space()); diff --git a/src/include/map_range.h b/src/include/map_range.h index a22f326..fcb56f3 100644 --- a/src/include/map_range.h +++ b/src/include/map_range.h @@ -87,27 +87,28 @@ namespace MultiArrayTools }; - template - class GenMapIndex : public IndexInterface, + template + class GenMapIndex : public IndexInterface, typename Op::value_type> //std::tuple > { public: - typedef IndexInterface, + typedef IndexInterface, typename Op::value_type> IB; //std::tuple > IB; typedef std::tuple...> IndexPack; //typedef std::tuple MetaType; typedef typename Op::value_type MetaType; - typedef GenMapRange RangeType; + typedef GenMapRange RangeType; typedef GenMapIndex IType; - typedef SingleIndex OIType; + //typedef SingleIndex OIType; static constexpr IndexType sType() { return IndexType::SINGLE; } static constexpr size_t sDim() { return sizeof...(Indices); } static constexpr size_t totalDim() { return mkTotalDim(); } - + static void check_type() { static_assert( std::is_same::value, "inconsitent value types" ); } + static constexpr SpaceType STYPE = XSTYPE; static constexpr bool PARALLEL = false; @@ -207,12 +208,12 @@ namespace MultiArrayTools *************************/ // NOT THREAD SAVE - template + template class GenMapRangeFactory : public RangeFactoryBase { public: - typedef SingleRange ORType; - typedef GenMapRange oType; + //typedef SingleRange ORType; + typedef GenMapRange oType; GenMapRangeFactory() = delete; @@ -222,14 +223,14 @@ namespace MultiArrayTools template GenMapRangeFactory(const std::shared_ptr& outr, const std::tuple& mapf, - const typename GenMapRange::Space& st); + const typename GenMapRange::Space& st); template GenMapRangeFactory(const std::tuple& mapf, const std::shared_ptr&... rs); template GenMapRangeFactory(const std::tuple& mapf, - const typename GenMapRange::Space& space); + const typename GenMapRange::Space& space); virtual std::shared_ptr create() override; @@ -243,16 +244,16 @@ namespace MultiArrayTools * MapRange * ******************/ - template - class GenMapRange : public RangeInterface > + template + class GenMapRange : public RangeInterface > { public: typedef RangeBase RB; typedef std::tuple...> Space; - typedef GenMapIndex IndexType; - typedef GenMapRange RangeType; - typedef SingleRange ORType; - typedef SingleRangeFactory ORFType; + typedef GenMapIndex IndexType; + //typedef GenMapRange RangeType; + //typedef SingleRange ORType; + //typedef SingleRangeFactory ORFType; typedef typename Op::value_type MetaType; //typedef typename RangeInterface >::IndexType IndexType; @@ -326,7 +327,7 @@ namespace MultiArrayTools auto cat(const std::shared_ptr >& erange) -> std::shared_ptr >; */ - friend GenMapRangeFactory; + friend GenMapRangeFactory; static constexpr bool HASMETACONT = false; static constexpr bool defaultable = false; @@ -335,17 +336,17 @@ namespace MultiArrayTools }; // for legacy - template - using MapIndex = GenMapIndex; + template + using MapIndex = GenMapIndex; - template - using MapRangeFactory = GenMapRangeFactory; + template + using MapRangeFactory = GenMapRangeFactory; - template - using MapRange = GenMapRange; + template + using MapRange = GenMapRange; - template - auto mapResult/* >*/(const std::shared_ptr >& ind) + template + auto mapResult/* >*/(const std::shared_ptr >& ind) -> decltype(ind->outIndex()) { return ind->outIndex(); diff --git a/src/include/map_range_factory_product_map.h b/src/include/map_range_factory_product_map.h index d02d7c0..cd0eab9 100644 --- a/src/include/map_range_factory_product_map.h +++ b/src/include/map_range_factory_product_map.h @@ -14,7 +14,7 @@ namespace MultiArrayTools { public: - template + template friend class GenMapRangeFactory; private: diff --git a/src/include/mbase_def.h b/src/include/mbase_def.h index f981a5b..aad6cdf 100644 --- a/src/include/mbase_def.h +++ b/src/include/mbase_def.h @@ -79,15 +79,15 @@ namespace MultiArrayTools class ConstSliceDef; // map_range.h - template + template class GenMapIndex; // map_range.h - template + template class GenMapRangeFactory; // map_range.h - template + template class GenMapRange; } diff --git a/src/tests/op2_unit_test.cc b/src/tests/op2_unit_test.cc index 3c044d4..4d5be4d 100644 --- a/src/tests/op2_unit_test.cc +++ b/src/tests/op2_unit_test.cc @@ -55,7 +55,8 @@ namespace typedef std::remove_reference>(),getIndex(sr1ptr),getIndex(sr2ptr)) , sr1ptr, sr2ptr ))>::type MpRange; std::shared_ptr mpr1ptr; - typedef MpRange::ORType TRange; + //typedef MpRange::ORType TRange; + typedef std::remove_referenceoutRange())>::type TRange; MapTest() {