boost lockfree使用用户定义类型

时间:2011-11-03 02:48:05

标签: c++ boost lock-free

我尝试使用boost lockfree库。但是,当我将模板参数设置为用户定义类型时,会出现错误invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’ 有没有解决它?

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

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

1 个答案:

答案 0 :(得分:0)

STATIC_ASSERTION_FAILURE来自BOOST_STATIC_ASSERT。我怀疑Boost.Lockfree对fifo的元素有一些大小限制。使用较小的UDT再试一次。

也可能是Lockfree只适用于标准类型,因此不会接受任何UDT。如果是这种情况,则需要存储指针而不是实际结构。