HackerRank C++ Class Template Specialization solution YASH PAL, 31 July 202422 August 2024 In this HackerRank C++ Class Template Specialization problem in the c++ programming language, you need to Write a class template that can provide the names of the enumeration values for both types. If the enumeration value is not valid, then print unknown. HackerRank C++ class template specialization problem solution. #include <iostream> using namespace std; enum class Fruit { apple, orange, pear }; enum class Color { red, green, orange }; template <typename T> struct Traits; // Define specializations for the Traits class template here. template <> struct Traits<Fruit>{ static string name(int index){ switch(index){ case 0:return "apple"; case 1: return "orange" ; case 2: return "pear"; } return "unknown"; } }; template <> struct Traits<Color>{ static string name(int index){ switch(index){ case 0:return "red"; case 1: return "green" ; case 2: return "orange"; } 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"; } } Second solution #include <iostream> using namespace std; enum class Fruit { apple, orange, pear }; enum class Color { red, green, orange }; template <typename T> struct Traits; // Define specializations for the Traits class template here. #include <string> template <typename T> struct Traits { static std::string name(int index) { return "unknown"; } }; template<> struct Traits<Fruit> { static std::string name(int index) { switch((Fruit)index) { case Fruit::apple: return "apple"; case Fruit::orange: return "orange"; case Fruit::pear: return "pear"; default: return "unknown"; } } }; template<> struct Traits<Color> { static std::string name(int index) { switch((Color)index) { case Color::red: return "red"; case Color::green: return "green"; case Color::orange: return "orange"; default: return "unknown"; } } }; coding problems cpp hackerrank solutions