gpt4 book ai didi

c++ - 如何定义返回嵌套类对象的模板类的成员函数

转载 作者:搜寻专家 更新时间:2023-10-31 00:26:14 26 4
gpt4 key购买 nike

template<typename IPC_TYPE>
class Poller
{
private:

public:
struct Event
{
std::shared_ptr<IPC> ipc;
enum Status
{
NONE = 0, POLLIN = 1, POLLHUP = 2, MessageArrival = 3
}status;
};

//block wait
Event wait(size_t max_wait_time = 50);
};

template<typename IPC_TYPE>
Poller<IPC_TYPE>::Event Poller<IPC_TYPE>::wait(size_t max_wait_time = 50)
{
Event e;
return Event();
}

我定义了一个类模板 Poller 和一个嵌套类 Event,我正在编写一个 Poller 的成员函数,它返回一个 Event 对象,但编译器报告 "错误 C2061 语法错误:标识符“事件”IPC poller.cpp 8",我该怎么办?谢谢!

最佳答案

编译器不知道是否Poller<IPC_TYPE>::EventPoller<IPC_TYPE>的成员变量或嵌套类型。

因此我们必须输入 typename消除这种歧义如下:

DEMO is here.

template<typename IPC_TYPE>
typename Poller<IPC_TYPE>::Event Poller<IPC_TYPE>::wait(size_t max_wait_time)
{
Event e;
return Event();
}

关于c++ - 如何定义返回嵌套类对象的模板类的成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53357136/

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