다음 코드가 있지만 컴파일러에서 sender_wrapper가 정의되어 있지 않다고 선언합니다. struct의 forward 선언을 할 수 없습니까? 유형의struct forward declaration fails 컴파일
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'를 사용합니다. struct가 실제로 _declared_되었지만 아직 _defined_되지 않았기 때문입니다. 이 두 용어의 차이는 정말 중요합니다 (특히이 오류를 이해할 때) –