小编exp*_*t3r的帖子

将函数返回用于另一个模板函数 C++

我正在尝试使用另一个函数的返回来调用模板化函数,但我似乎无法让它工作。

enum class MYENUM {
    X1,X2
};

MYENUM SomeFunc() {
    return MYENUM::X1;
}

template<MYENUM T>
void ENUMFunc() {
    //do something
}

int main() {
    ENUMFunc<MYENUM::X1>(); //works
    ENUMFunc<SomeFunc()>(); //error?
}
Run Code Online (Sandbox Code Playgroud)

c++ enums templates

2
推荐指数
1
解决办法
55
查看次数

将枚举转换为成员变量 [问题] C++

我正在尝试为与结构中不同枚举值对应的不同类型的变量创建查找。

这是我到目前为止的解决方案:

struct X {
    int x;
    std::string y;
    char z;
    enum class MYENUM {
        X, Y, Z
    };
    template<MYENUM TYPE>
    auto& GetAttribute() {
        if constexpr (TYPE == MYENUM::X) return x;
        else if constexpr (TYPE == MYENUM::Y) return y;
        else if constexpr (TYPE == MYENUM::Z) return z;
    }
};
Run Code Online (Sandbox Code Playgroud)

我正在寻找更优雅的解决方案,因为在我的实际项目中,我的结构中有许多不同的变量,因此 if/else 块变得非常大。

c++ enums templates

2
推荐指数
1
解决办法
49
查看次数

标签 统计

c++ ×2

enums ×2

templates ×2