template notation for high level op RetT

This commit is contained in:
Christian Zimmermann 2020-09-03 13:32:52 +02:00
parent 2010b61006
commit 079b7cfb44
2 changed files with 10 additions and 8 deletions

View file

@ -61,10 +61,10 @@ namespace MultiArrayTools
template <class ROP> template <class ROP>
auto HighLevelOpRoot<ROP>::create(const std::shared_ptr<CI> ind1, auto HighLevelOpRoot<ROP>::create(const std::shared_ptr<CI> ind1,
const std::shared_ptr<CI> ind2) const std::shared_ptr<CI> ind2)
-> typename B::RetT<CI,CI> -> typename B::template RetT<CI,CI>
{ {
assert(0); assert(0);
return typename B::RetT<CI,CI>(); return typename B::template RetT<CI,CI>();
} }
template <class ROP> template <class ROP>
@ -165,9 +165,9 @@ namespace MultiArrayTools
template <class ROP, class OpF, size_t N> template <class ROP, class OpF, size_t N>
auto HighLevelOp<ROP,OpF,N>::create(const std::shared_ptr<CI> ind1, auto HighLevelOp<ROP,OpF,N>::create(const std::shared_ptr<CI> ind1,
const std::shared_ptr<CI> ind2) const std::shared_ptr<CI> ind2)
-> typename B::RetT<CI,CI> -> typename B::template RetT<CI,CI>
{ {
typename B::RetT<CI,CI> res; typename B::template RetT<CI,CI> res;
Create<N-1>::template cx<CI,CI>::template ccx<ROP,OpF>::template cccx<N>(res,mIn,ind1,ind2); Create<N-1>::template cx<CI,CI>::template ccx<ROP,OpF>::template cccx<N>(res,mIn,ind1,ind2);
return res; return res;
} }

View file

@ -58,8 +58,9 @@ namespace MultiArrayTools
virtual bool root() const override final; virtual bool root() const override final;
virtual typename B::RetT<CI,CI> create(const std::shared_ptr<CI> ind1, virtual typename B::template RetT<CI,CI>
const std::shared_ptr<CI> ind2) override final; create(const std::shared_ptr<CI> ind1,
const std::shared_ptr<CI> ind2) override final;
virtual const ROP* get() const override final; virtual const ROP* get() const override final;
@ -89,8 +90,9 @@ namespace MultiArrayTools
virtual const ROP* get() const override final; virtual const ROP* get() const override final;
virtual typename B::RetT<CI,CI> create(const std::shared_ptr<CI> ind1, virtual typename B::template RetT<CI,CI>
const std::shared_ptr<CI> ind2) override final; create(const std::shared_ptr<CI> ind1,
const std::shared_ptr<CI> ind2) override final;
}; };