CNORXZ
Container with Native Operation Routines and Expressions
Loading...
Searching...
No Matches
buf_xpr.h
Go to the documentation of this file.
1// -*- C++ -*-
12#include "xpr_base.h"
13
14namespace CNORXZ
15{
16 template <typename T, class IXprF>
17 class BufXpr : public XprInterface<BufXpr>
18 {
19 public:
20 BufXpr() = default;
21 BufXpr(const BufXpr& in);
22 BufXpr(BufXpr&& in);
23 BufXpr& operator=(const BufXpr& in);
25
26 constexpr BufXpr(IXprF&& ixprf);
27
28 template <class PosT>
29 inline decltype(auto) operator()(const PosT& last) const;
30
31 inline decltype(auto) operator()() const;
32
33 template <SizeT I>
34 inline decltype(auto) rootSteps(const IndexId<I>& id) const;
35
36 private:
37 T mBuf;
38 IXprF mIXprF; // function to create set-buffer-xpr (reference to mBuf as arg)
39 typedef decltype(mIXprF(mBuf)) IXpr;
40 IXpr mIXpr;
41 };
42
43 template <typename T, class IXprF>
44 constexpr decltype(auto) bufxpr(IXprF&& ixprf);
45}
BufXpr()=default
BufXpr & operator=(const BufXpr &in)
Definition buf_xpr.cc.h:31
decltype(auto) rootSteps(const IndexId< I > &id) const
Definition buf_xpr.cc.h:71
constexpr decltype(auto) bufxpr(IXprF &&ixprf)
Definition buf_xpr.cc.h:77
Sptr< Range > rangeCast(const RangePtr r)
Xpression base declarations.