You are viewing a single comment's thread. Return to all comments →
using namespace std; enum class Fruit { apple, orange, pear }; enum class Color { red, green, orange };
template struct Traits;
template <> struct Traits { static string name(int index) { switch (index) { case 0: return "red"; case 1: return "green"; case 2: return "orange"; default: return "unknown"; } } };
template <> struct Traits { static string name(int index ) { switch (index) { case 0: return "apple"; case 1: return "orange"; case 2: return "pear"; default: return "unknown"; } } };
int main() { int t = 0; std::cin >> t;
for (int i=0; i!=t; ++i) { int index1; std::cin >> index1; int index2; std::cin >> index2; cout << Traits<Color>::name(index1) << " "; cout << Traits<Fruit>::name(index2) << "\n"; }
}
Seems like cookies are disabled on this browser, please enable them to open this website
C++ Class Template Specialization
You are viewing a single comment's thread. Return to all comments →
include
using namespace std; enum class Fruit { apple, orange, pear }; enum class Color { red, green, orange };
template struct Traits;
template <> struct Traits { static string name(int index) { switch (index) { case 0: return "red"; case 1: return "green"; case 2: return "orange"; default: return "unknown"; } } };
template <> struct Traits { static string name(int index ) { switch (index) { case 0: return "apple"; case 1: return "orange"; case 2: return "pear"; default: return "unknown"; } } };
int main() { int t = 0; std::cin >> t;
}