Как сравнивать произвольные типы? Точнее мне нужно их сортировать, но для этого достаточно научиться их сравнивать.
У меня есть некий темплейт, который принимает произвольное количество классов (окей, я могу менять эти классы, но лучше этого не делать).
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.






