我有以下代碼,但編譯器說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