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