From 9b887c83a616e1cdd5c06f669a91e9f2713af7ed Mon Sep 17 00:00:00 2001 From: nojhan Date: Tue, 10 Dec 2019 11:20:54 +0100 Subject: [PATCH] feat: class to wrap a eoMonOp into a eoQuadOp --- eo/src/eoOp.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/eo/src/eoOp.h b/eo/src/eoOp.h index 5351b9d86..bf0e24de9 100644 --- a/eo/src/eoOp.h +++ b/eo/src/eoOp.h @@ -184,6 +184,50 @@ private: eoQuadOp & quadOp; }; +/** Wrap eoMonOp into an eoQuadOp: simply don't touch the second arg. + */ +template +class eoMon2QuadOp1: public eoQuadOp +{ +public: + /** Ctor + * @param _monOp the eoMonOp to be transformed + */ + eoMon2QuadOp1(eoMonOp & _monOp) : monOp(_monOp) {} + + /** Call the eoMonOp on the first argument only. + */ + bool operator()(EOT & _eo1, EOT & /*_eo2*/) + { + return monOp(_eo1); + } + +private: + eoMonOp & monOp; +}; + +/** Wrap eoMonOp into an eoQuadOp: simply don't touch the first arg. + */ +template +class eoMon2QuadOp2: public eoQuadOp +{ +public: + /** Ctor + * @param _monOp the eoMonOp to be transformed + */ + eoMon2QuadOp2(eoMonOp & _monOp) : monOp(_monOp) {} + + /** Call the eoMonOp on the second argument only. + */ + bool operator()(EOT & /*_eo1*/, EOT & _eo2) + { + return monOp(_eo2); + } + +private: + eoMonOp & monOp; +}; + #endif //@}