7OHHY4J34MNZ5PU73R24C2UVRFNJ3W2VKAYUISKAAFVP6XNHDZEQC
////////////////////////////////////////////////////////////////////////////////
template <typename T> struct zero;
template <> struct zero<short> {
constexpr short operator()() const { return 0; }
};
template <> struct zero<int> {
constexpr int operator()() const { return 0; }
};
template <> struct zero<long> {
constexpr long operator()() const { return 0; }
};
template <> struct zero<float> {
constexpr float operator()() const { return 0; }
};
template <> struct zero<double> {
constexpr double operator()() const { return 0; }
};