gpt4 book ai didi

c++ - 为枚举参数化的模板

转载 作者:行者123 更新时间:2023-11-28 00:58:55 25 4
gpt4 key购买 nike

我想这样做:

template <enum Type>
class Message {
private:
Type m_type
};

enum StdInMessages { PrintHello, Echo, ... };
class StdInMsg : Message<StdInMessages>
{ ... }

enum NetworkMessages { DoSomethingElse, Shutdown ... };
class NetworkMsg : Message<NetworkMessages>
{ ... }

当然,实际消息略有不同

为什么这行不通?

template <enum T> class ATemplate {};

我收到这个错误

error: use of enum ‘T’ without previous declaration

最佳答案

如果预先声明了 enum T,它就可以工作:

enum T {
foo, bar
};

template <enum T> // or simply `template <T>`
class ATemplate { };

int main() {
ATemplate<foo> x;
}

但是从变量名T来看,这不是你想要的。由于很难猜测您到底想要什么,因此您需要更加具体。

关于c++ - 为枚举参数化的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9768242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com