RM
Size: a a a
RM
RM
RM
RM
AB
RM
Е
template <size_t N>?
struct Test;
template<>
struct Test<get_unique_number()>
template<>
struct Test<get_unique_number()>
template<>
struct Test<get_unique_number()>
template<>
struct Test<get_unique_number()>
AB
template <size_t N>?
struct Test;
template<>
struct Test<get_unique_number()>
template<>
struct Test<get_unique_number()>
template<>
struct Test<get_unique_number()>
template<>
struct Test<get_unique_number()>
Е
static constexpr int a = get_unique_number();
static constexpr int b = get_unique_number();
static constexpr int c = get_unique_number();
a!= b != c
AB
Е
AB
Е
F
Е
Е
static constexpr int a = get_unique_number();
static constexpr int b = get_unique_number();
static constexpr int c = get_unique_number();
a!= b != c
template <>То ругать и неправильная компиляция (наверное кэширует значение).
struct Test<get_num()>
template<>
struct Test2<get_num()>
static constexpr auto id_1 = get_num();Тоже ругань, это при том что std::cout << (id_1 != id_2) // 1
template<>
struct Test<id_1>
static constexpr auto id_2 = get_num();
template<>
struct Test<id_2>
W
НК
O
O