// -*- C++ -*- /** @file include/operation/basic_operations.h @brief Basic operations declaration Copyright (c) 2024 Christian Zimmermann. All rights reserved. Mail: chizeta@f3l.de **/ #ifndef __cxz_basic_operations_h__ #define __cxz_basic_operations_h__ #include "base/base.h" #include "operation.h" namespace CNORXZ { // standard operations: // unary: template constexpr decltype(auto) minus(const COpInterface& op); // binary: template constexpr decltype(auto) plus(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) minus(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) multiplies(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) divides(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) modulo(const COpInterface& op1, const COpInterface& op2); // operators for standard operations: template constexpr decltype(auto) operator-(const COpInterface& op); template constexpr decltype(auto) operator+(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) operator-(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) operator*(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) operator/(const COpInterface& op1, const COpInterface& op2); template constexpr decltype(auto) operator%(const COpInterface& op1, const COpInterface& op2); } #endif