C++ boost无锁使用用户定义类型

C++ boost无锁使用用户定义类型,c++,boost,lock-free,C++,Boost,Lock Free,我尝试使用boost无锁库。但是,当我将模板参数设置为用户定义类型时,对不完整类型“boost::STATIC\u ASSERTION\u FAILURE”应用“sizeof”时出现错误。无效。 有什么办法可以解决吗 typedef struct TMsgBuffer { char m_puBuffer[512]; size_t m_iBufferLen; } tMsgBuffer; boost::lockfree::fifo<tMsgBuffer&g

我尝试使用boost无锁库。但是,当我将模板参数设置为用户定义类型时,对不完整类型“boost::STATIC\u ASSERTION\u FAILURE”应用“sizeof”时出现错误。
无效。
有什么办法可以解决吗

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

boost::lockfree::fifo<tMsgBuffer> fifo;
typedef结构TMsgBuffer
{
char m_puBuffer[512];
伊布弗伦尺寸;
}tMsgBuffer;
boost::lockfree::fifo-fifo;

静态断言\u失败
源于
增强静态断言。我怀疑Boost。Lockfree对fifo的元素有一些大小限制。使用较小的UDT重试


也可能是无锁仅适用于标准类型,因此不接受UDT。如果是这种情况,您需要存储指针,而不是实际结构。

Lockfree不是标准boost的一部分。你在哪里买的?编译器针对该错误给出了什么文件/行号?