всех приветствую!
суть задачи описана в названии топика, и чтоб долго не объяснять, приведу простой пример, который, полагаю, объяснит лучше слов:
#include <iostream>
#include <type_traits>
enum e1 { e1v1, e1v2 };
enum e2 { e2v1, e2v2 };
struct enum_e1;
struct enum_e2;
template<typename T>
struct enum_type {
static_assert(std::is_enum<T>::value, "T is not a enum");
using type = typename std::conditional<
std::is_same<T, e1>::value
,enum_e1
,enum_e2
>::type;
};
int main() {
using et = typename enum_type<e1v1>::type; // error: expected a type, got 'e1v1'
static_assert(std::is_same<et, enum_e1>::value, "error!");
}
благодарен.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)