#ifndef PYTHONIC_INCLUDE_UTILS_NEUTRAL_HPP #define PYTHONIC_INCLUDE_UTILS_NEUTRAL_HPP #include "pythonic/include/operator_/iadd.hpp" #include "pythonic/include/operator_/iand.hpp" #include "pythonic/include/operator_/ior.hpp" #include "pythonic/include/operator_/imul.hpp" #include "pythonic/include/operator_/imax.hpp" #include "pythonic/include/operator_/imin.hpp" #include "pythonic/include/operator_/ixor.hpp" PYTHONIC_NS_BEGIN namespace utils { template struct neutral; template struct neutral { static T const value; }; template T const neutral::value = 0; template struct neutral { static T const value; }; template T const neutral::value = (T)-1; template struct neutral { static T const value; }; template T const neutral::value = 0; template struct neutral { static T const value; }; template T const neutral::value = 1; template struct neutral { static T const value; }; template T const neutral::value = std::numeric_limits::lowest(); template struct neutral { static T const value; }; template T const neutral::value = std::numeric_limits::max(); template struct neutral { static T const value; }; template T const neutral::value = 0; } PYTHONIC_NS_END #endif