如果我有一个枚举定义为...
enum MyValue
{
Unk,
A,
B
};
我想创建一个专门的模板,根据变量类型本身返回/设置类型
template<typename T>
struct get_value
{
// the 'value' should be MyValue::Unk
};
template<>
struct get_value<int>
{
// the 'value' should be MyValue::A
};
template<>
struct get_value<double>
{
// the 'value' should be MyValue::B
};
这样我就可以调用结构
auto x = get_value<char>::value; // == MyValue::Unk
和
auto y = get_value<int>::value; // == MyValue::A
这在c++中是否可能,如果可以,如何实现?
最佳答案
具有以下内容:
template<typename T>
struct get_value
{
static constexpr MyValue value = MyValue::Unk;
};
template<>
struct get_value<int>
{
static constexpr MyValue value = MyValue::A;
};
template<>
struct get_value<double>
{
static constexpr MyValue value = MyValue::B;
};
关于c++ - 专用模板根据变量类型返回/设置枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39062770/