2014-03-25 30 views
0

我試圖使用B2工具從加速。我的代碼編譯我的代碼是用C++編寫,幷包含一些功能從C庫調用一樣。與Boost ASIO寫編譯器之間混合::和unistd寫

在編譯階段,編譯器兩種功能,這是unistd的一部分寫入功能,並且其是升壓librarues的一部分寫入功能之間混合。

/home/ha/MIH/boost_1_49_0/boost/asio/impl/write.hpp:79:77:從「的std ::爲size_t的boost ::支持ASIO ::寫實例化(SyncWriteStream &,常量ConstBufferSequence & ,CompletionCondition)[與SyncWriteStream = INT,ConstBufferSequence =消息*,CompletionCondition =長無符號整型,性病::爲size_t =長無符號整數]」 socketmid.cpp:152:61:從這裏

誤差實例化發生在從unistid.h用作以下寫功能:

if (write(peer_fd, &confirm, sizeof (struct message)) < 0) 
{ 
    ...... 
} 

所以,我怎麼能解決這個問題?因爲據我所知我不能使用C函數的命名空間。

回答

1

你似乎調用從C++代碼(否則升壓短耳無論如何都不會工作),所以你應該能夠使用完整的合格的命名空間,例如boost::asio::write::write

+0

你是正確的,但正如我所說我的問題是從unistd寫功能,我用它來通過套接字發送數據。 – IoT

+0

你可以使用:: write()來使它無歧義。或者可以停止將整個boost :: asio命名空間導入到全局名稱空間以避免該問題 – Matthias247

+0

感謝它與我合作 – IoT

相關問題