add Scalar<T> + cast to T

This commit is contained in:
Christian Zimmermann 2018-04-29 17:41:28 +02:00
parent 714eecd663
commit 6e1da5eed3

View file

@ -50,6 +50,8 @@ namespace MultiArrayTools
virtual const T* data() const override;
virtual T* data() override;
operator T() const;
template <typename U, class... SRanges2>
friend class MultiArray;
@ -57,6 +59,9 @@ namespace MultiArrayTools
private:
std::vector<T> mCont;
};
template <typename T>
using Scalar = MultiArray<T>;
}
@ -193,6 +198,13 @@ namespace MultiArrayTools
{
return mCont.data();
}
template <typename T, class... SRanges>
MultiArray<T,SRanges...>::operator T() const
{
static_assert( sizeof...(SRanges) == 0, "try to cast non-scalar type into scalar" );
return mCont[0];
}
}
#endif