0
我想創建一個連接結構,其中有一個concurrent_queue和一個連接指針。由於我有一個未知數量的連接,這個結構將被推回到一個向量中。結構中的concurrent_queue
的載體和結構:
struct connection_struct {
concurrent_queue<string> messages_queue;
connection_ptr con;
connection_struct(concurrent_queue<string> queue) {
messages_queue = queue;
}
};
std::vector<connection_struct> allConnections;
這可以被編譯,但是當我創建了結構,它不能再編譯。我創建由結構:
boost::thread_group message_workers;
concurrent_queue<string> message_queue(&message_workers);
connection_struct viewer(message_queue);
編譯錯誤是巨大的,但我認爲這是相關的位:
In constructor ‘websocketpp::broadcast::handler<endpoint_type>::connection_struct::connection_struct(concurrent_queue<std::basic_string<char> >) [with endpoint_type = websocketpp::endpoint<websocketpp::role::server, websocketpp::socket::tls>]’:
broadcast_handler.hpp:284:21: note: synthesized method ‘concurrent_queue<std::basic_string<char> >& concurrent_queue<std::basic_string<char> >::operator=(concurrent_queue<std::basic_string<char> >&)’ first required here
任何線索我應該怎麼辦?謝謝!
我敢肯定,這將有助於如果你粘貼了整個錯誤信息並告訴我們'concurrent_queue'來自哪裏。 – us2012 2013-03-20 15:50:06
看起來'concurrent_queue'不是可分配的,但根據http://msdn.microsoft.com/en-us/library/ee355375.aspx,是複製可構造的。所以:'connection_struct(concurrent_queue const&queue):messages_queue(queue){}' –
hmjd
2013-03-20 16:02:16