title: Template specialization for enum values
body: <p>Is it possible to specialize a class method for individual enum values? 
  Specifically I have an enum and a class as follows:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;stdio.h&gt;
  
  using namespace std;
  
  enum class Animal { dog, cat, bird  };
  class Sound
  {
     public:
        static void getSound ( const Animal&amp; arg )
        {
           switch ( arg )
           {
             case Animal::dog:
               // dog specific processing
               break;
  
             case Animal::cat:
               // cat specific processing
               break;
  
             case Animal::bird:
               // bird specific processing
               break;
  
             default:
               return;
           }
        }
  };
  </code></pre>
  
  <p>I want to specialize getSound function for each of the enum values to get rid of the switch case. Is such template specialization possible?</p>