C++ boost无锁使用用户定义类型
我尝试使用boost无锁库。但是,当我将模板参数设置为用户定义类型时,对不完整类型“boost::STATIC\u ASSERTION\u FAILURE”应用“sizeof”时出现错误。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
无效。
有什么办法可以解决吗
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的一部分。你在哪里买的?编译器针对该错误给出了什么文件/行号?