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