Как сравнивать произвольные типы? Точнее мне нужно их сортировать, но для этого достаточно научиться их сравнивать.
У меня есть некий темплейт, который принимает произвольное количество классов (окей, я могу менять эти классы, но лучше этого не делать).
foo<C1, C2, C3>
foo<C8, C4>
Я хочу, чтобы foo<C1, C3, C5>::type
и foo<C5, C1, C3>::type
был один и тот же тип Boo<C1, C2, C5>
, порядок не важен, главное, чтобы он был всегда одинаковый.
Единственное решение, которая я вижу - это нумеровать каждый класс. Как нумеровать автоматически, я не знаю.
class C1 {
constexpr static int value = 1;
}
class C2 {
constexpr static int value = 2;
}
...
type_info::before
почему-то не constexpr.