#pragma once template struct BaseInterval { static const uint64_t zero = 0ull; static const uint64_t notz = 0xffffffffffffffffull; T m_min, m_max; static BaseInterval make(T min_value, T max_value) { BaseInterval res = { min_value, max_value }; return res; } static BaseInterval make() { return make((T&)zero, (T&)notz); } bool getconst(T& result) { if (m_min == m_max) { result = m_min; return true; } else { return false; } } bool isindef() { if (T == float) { } } };