我有以下代码,但编译器说sender_wrapper是未定义的,即使我转发宣布它。我不能做一个结构的前向声明吗? (编译VS2003)的类型结构正向声明失败编译
struct send_wrapper;
struct IPSend
{
IPSend::IPSend(const send_wrapper& sender) : _sender(sender) {}
void IPSend::operator()(const std::string& msg)
{
if (!msg.empty())
_sender.send(msg);
}
send_wrapper _sender; //error C2079: 'IPSend::_sender' uses undefined struct 'send_wrapper'
};
struct send_wrapper
{
std::auto_ptr<tcp_server> server;
};
Nos和Oli已经回答 - 但我想指出错误的具体措辞。 `使用_undefined_ struct`。这是因为结构确实是_declared_,但还没有_defined_。这两个术语之间的区别非常重要(特别是在理解像这样的错误时) – 2011-02-17 08:44:28