gpt4 book ai didi

c++ - 带枚举的模板需要了解

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

这是我第一次遇到这样的代码。在此代码中而不是使用关键字 typename一个enumeration使用类型。代码如下所示。

enum T_Thread
{
EA,
EB,
EC,
ED
};

Header File
template<T_Thread Thread> <----Q1- I was expecting template<typename t>...
class SBatch : public ParentClass<Thread>
{
SBatch(size_t max);
....
....
};

Cpp File

template<T_Thread Thread>
SBatch<Thread>::SBatch(size_t max) : ParentClass<Thread> <--Q2. Compile Error : expected '(' before ','
{
......
......
}

父类是这样的

template <T_Thread Thread>
class ParentClass: public MParentClass<Thread>
{
public:
ParentClass();
....
....
}

基于此我有两个问题

  1. 使用枚举类型而不是使用 <template typename> 有何必要?

  2. 为什么我在

    上遇到编译错误
    SBatch<Thread>::SBatch(size_t max) : ParentClass<Thread>

我正在使用 MingW gcc 64 位。

最佳答案

  1. what is the need of having an enum type instead of using <template typename>

这只是一个non-type parameter .

  1. why am I getting a compilation error on

    SBatch<Thread>::SBatch(size_t max) : ParentClass<Thread>

您可能忘记了括号。

SBatch<Thread>::SBatch(size_t max) : ParentClass<Thread><b>()</b>

关于c++ - 带枚举的模板需要了解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29238954/

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