struct false_t{ enum { res = false };};struct true_t{ enum { res = true };};template<int i> struct check_t{ enum { res = (i!=0) ? true_t::res : false_t::res };};
res = (i!=0) ? static_cast<int>(true_t::res) : static_cast<int>(false_t::res)
struct false_t { static const bool res = false;};struct true_t { static const bool res = true;};template<int i> struct check_t { static const bool res = i != 0;};