小编vch*_*dra的帖子

枚举值的模板专门化

是否可以专门为单个枚举值使用类方法?具体来说,我有一个枚举和一个类,如下所示:

#include <iostream>
#include <stdio.h>

using namespace std;

enum class Animal { dog, cat, bird  };
class Sound
{
   public:
      static void getSound ( const Animal& 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;
         }
      }
};
Run Code Online (Sandbox Code Playgroud)

我想专门针对每个枚举值的getSound函数,以摆脱开关的情况。这样的模板专业化可能吗?

c++ templates specialization sfinae

3
推荐指数
2
解决办法
3587
查看次数

标签 统计

c++ ×1

sfinae ×1

specialization ×1

templates ×1