Предположим, у меня есть следующее:
template<std::size_t> struct s;
template<> struct s<sizeof(int)> { /*...*/ };
template<> struct s<sizeof(long)> { /*...*/ }; // will not compile as it already exists.
Как мне реализовать проверку для условного различения двух экземпляров? Я хочу реализовать последнее только в том случае, если они не равны.
Очевидно, sizeof
не является конструкцией, которая может быть оценена препроцессором. Какие у меня есть варианты?