2013-07-29 155 views
0

我正在關注升級SSL的This教程。我做的唯一沒有完成的教程是把每個類放到它自己的文件中。我不知道它在哪裏被拋出,所以它對我來說很難調試。爲什麼我無法訪問類'boost :: asio :: detail :: noncopyable'中聲明的私有成員?

錯誤C2248: '提高:: ASIO ::詳細::不可複製::不可複製':不能訪問類中聲明 '的boost :: ASIO ::詳細::不可複製'

+1

錯誤說明了一切。您無法複製該特定的Boost.Asio對象。 –

+1

也許你忘了通過引用而不是按值來存儲'io_service'?無需看代碼即可知道 – nijansen

+0

錯誤指向哪條線? – avakar

回答

2

常見的私有成員與Boost.Asio的工作時的錯誤是boost::asio::io_service是不可複製的,所以你可能在你的類只引用存儲:

struct foo 
{ 
    foo(boost::asio::io_service & io_service) 
     : io_service_(io_service) 
    {} 

    private: 
     boost::asio::io_service & io_service_; // ok 
}; 

如果申報boost::asio::io_service io_service_相反,你得到的錯誤如上所述,因爲初始化io_service_(io_service)取決於被調用的複製構造函數。

相關問題