2014-12-12 3 views
3

spsc_queue에서 Boost.LockFree까지 사용자 정의 유형과 함께 사용할 수 있는지 알고 싶습니다. 내가 모르는 예제에서, 나는 단지 atomic s 그리고 더 많은 것 atomic s를 본다.부스트 : spsc 큐 : 사용자 정의 유형으로 사용할 수 있습니까?

예 : 그래서

boost::lockfree::spsc_queue<int, boost::lockfree::capacity<1024> > spsc_queue; 

, 나는이 작업을 수행 할 수 있습니까? 기본적인 유형과 포인터가 터지는 일 이후 저장 될 수 있는지가 궁금

boost::lockfree::spsc_queue<ServerReply, boost::lockfree::capacity<1024> > spsc_queue; 

는 등 원자 적으로 수행해야하지만, ServerReply는 복합 유형입니다.

답변

3

짧은 대답 예. 그것은 약간 다른 질문 이었지만

, 나는 정확히 설명하는 방법과 한 이는 "증거"를 심층적으로 이전의 대답에 이유 :뿐만 아니라 라이브러리 코드 :

컴파일하면 아마 허용 될 수 있습니다.

유일한 예외는 사실 하나의 생산자와 단일 소비자가 있다는 사실에 대한 런타임 검증이 없다는 것입니다. 그러나 그 요구 사항은 의심의 여지가 없습니다.