在 C++ 中定义 boost 库无锁队列时的声明错误

Declaration error when defining a boost library lock free queue in c++

我是 c++ 的新手,我正在尝试使用 boost 库(版本 1.53)在 c++98 中创建一个无锁队列。当我在 c++98 中编译我的代码时,出现以下错误:

error: ‘q’ was not declared in this scope
  boost::lockfree::queue<T *, boost::lockfree::capacity<SIZE>> q;

当我删除容量选项 (boost::lockfree::capacity) 时,错误似乎消失了。我在这里遗漏了什么和做错了什么?

导致错误的行本身存在于构造函数中,如下所示:

    boost::lockfree::queue<T *, boost::lockfree::capacity<SIZE>> q;

在 C++11 之前,任何地方(包括模板参数列表)的 <<>> 都将被解释为运算符。您需要用 space:

分隔每个括号
boost::lockfree::queue<T *, boost::lockfree::capacity<SIZE> > q;

使用 C++11 或更高版本,您的原始行应按原样编译。