12#ifndef __cxz_basic_operations_cc_h__
13#define __cxz_basic_operations_cc_h__
26 return operation( [](
const auto& a) {
return -a; },
op.THIS() );
33 template <
class Op1,
class Op2>
36 return operation( [](
const auto& a,
const auto&
b) {
return a +
b; },
40 template <
class Op1,
class Op2>
43 return operation( [](
const auto& a,
const auto&
b) {
return a -
b; },
47 template <
class Op1,
class Op2>
50 return operation( [](
const auto& a,
const auto&
b) {
return a *
b; },
54 template <
class Op1,
class Op2>
57 return operation( [](
const auto& a,
const auto&
b) {
return a /
b; },
61 template <
class Op1,
class Op2>
64 return operation( [](
const auto& a,
const auto&
b) {
return a %
b; },
78 template <
class Op1,
class Op2>
84 template <
class Op1,
class Op2>
90 template <
class Op1,
class Op2>
96 template <
class Op1,
class Op2>
102 template <
class Op1,
class Op2>
Basic operations declaration.
constexpr decltype(auto) multiplies(const COpInterface< Op1 > &op1, const COpInterface< Op2 > &op2)
constexpr decltype(auto) minus(const COpInterface< Op > &op)
constexpr decltype(auto) modulo(const COpInterface< Op1 > &op1, const COpInterface< Op2 > &op2)
Sptr< Range > rangeCast(const RangePtr r)
constexpr decltype(auto) divides(const COpInterface< Op1 > &op1, const COpInterface< Op2 > &op2)
constexpr decltype(auto) plus(const COpInterface< Op1 > &op1, const COpInterface< Op2 > &op2)
constexpr decltype(auto) operation(F &&f, const Ops &... ops)