#ifndef PYTHONIC_OPERATOR_SUB_HPP #define PYTHONIC_OPERATOR_SUB_HPP #include "pythonic/include/operator_/sub.hpp" #include "pythonic/utils/functor.hpp" #include "pythonic/operator_/overloads.hpp" PYTHONIC_NS_BEGIN namespace operator_ { template auto sub(A &&a, B &&b) -> decltype(std::forward(a) - std::forward(b)) { return std::forward(a) - std::forward(b); } DEFINE_ALL_OPERATOR_OVERLOADS_IMPL( sub, -, (((b < 0) ? (a <= std::numeric_limits::max() + b) : (std::numeric_limits::min() + b <= a)))) } PYTHONIC_NS_END #endif