與Boost.Asio拼死拼搏,我遇到了很多困難。如何找到「boost :: noncopyable」錯誤?
其中之一是,我很難找到其中「升壓::不可複製的錯誤」是!
如果我意外違反了非拷貝規則,IDE只會在noncopyable.hpp或其他地方顯示一些錯誤,但我的文件中沒有任何地方存在。
我只能通過評論找到錯誤&取消註釋無處不在asio對象存在。
(PS:我的IDE是的Visual C++ 2008年,是這個IDE與升壓關係不好?)
編輯:
我知道,閱讀整個錯誤信息幫助了很多東西。 但是這個怎麼樣?
1>d:\boost\include\boost-1_42\boost\asio\basic_io_object.hpp(92) : error C2248: 'boost::noncopyable_::noncopyable::noncopyable' : cannot access private member declared in class 'boost::noncopyable_::noncopyable'
1> d:\boost\include\boost-1_42\boost\noncopyable.hpp(27) : see declaration of 'boost::noncopyable_::noncopyable::noncopyable'
1> d:\boost\include\boost-1_42\boost\noncopyable.hpp(22) : see declaration of 'boost::noncopyable_::noncopyable'
1> This diagnostic occurred in the compiler generated function 'boost::asio::basic_io_object<IoObjectService>::basic_io_object(const boost::asio::basic_io_object<IoObjectService> &)'
1> with
1> [ IoObjectService=boost::asio::stream_socket_service<boost::asio::ip::tcp> ]
這一切都引起本
tcp::socket getSocket(){
return m_socket;
}
(它應該是:
tcp::socket& getSocket(){
return m_socket;
}
)
當有在該文件中許多功能,你們可以快速找到它?
(PS2:也許所有這些麻煩都是由我pooooooor C++編程經驗??引起)
閱讀整個錯誤信息通常會幫助那裏......閱讀James McNellis的答案。編譯器通常會提供更好的錯誤報告,我們會仔細閱讀,並且這樣做可以多次掩蓋實際錯誤......但這是另一回事。 – 2010-09-21 07:51:12
我承認要問這個問題太抽象了...並編輯它。 – rhapsodyn 2010-09-21 11:53:01