我不明白为什么第一个不工作而不是第二个工作!
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include "concurrentQueue.h";
class TestClass {
public:
static concurrentQueue<function<void()>> notW;
static concurrentQueue<int> Works;
}
我还附加了concurrentQueue类的开头:
template<class Data> class concurrentQueue
答案 0 :(得分:2)
在>>
内放置一个空格,以防止它被视为右移操作符:
static concurrentQueue<function<void()> > notW;
使用C ++ 11编译器时,这不是必需的,因为编译器会将尖括号解释为尽可能关闭模板参数列表。
答案 1 :(得分:2)
在C ++ 03及更早版本的两个结束尖括号之间需要一个空格。这已在2011年新标准中“修复”。
有关详细信息,请参阅示例this question。