在 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 或更高版本,您的原始行应按原样编译。
我是 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 或更高版本,您的原始行应按原样编译。