2011-11-03 4 views
4

부스트 lockfree 라이브러리를 사용하려고했습니다. 그러나 템플릿 정의 매개 변수를 사용자 정의 유형으로 설정하면 오류 invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’이 발생합니다.
해결할 문제가 있습니까?boostfree use 사용자 정의 유형

typedef struct TMsgBuffer 
    { 
     char m_puBuffer[512]; 
     size_t m_iBufferLen; 
    } tMsgBuffer; 

boost::lockfree::fifo<tMsgBuffer> fifo; 
+1

Lockfree는 표준 부스트의 일부가 아닙니다. 어디서 얻는거야? 어떤 파일/라인 번호는 컴파일러가 그 오류를 제공 무엇입니까? –

답변

0

STATIC_ASSERTION_FAILUREBOOST_STATIC_ASSERT에서 발생합니다. 나는 Boost.Lockfree가 fifo의 요소에 약간의 크기 제한을 가지고 있다고 의심한다. 더 작은 UDT로 다시 시도하십시오.

Lockfree는 표준 유형에서만 작동하므로 UDT가 허용되지 않습니다. 이 경우 실제 구조 대신 포인터를 저장해야합니다.

+0

당신이 옳습니다. 포인터를 저장할 수있다. –