c ++类中的静态声明

时间:2011-12-24 15:54:16

标签: c++ boost boost-function

我不明白为什么第一个不工作而不是第二个工作!

#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

2 个答案:

答案 0 :(得分:2)

>>内放置一个空格,以防止它被视为右移操作符:

static concurrentQueue<function<void()> > notW;

使用C ++ 11编译器时,这不是必需的,因为编译器会将尖括号解释为尽可能关闭模板参数列表。

答案 1 :(得分:2)

在C ++ 03及更早版本的两个结束尖括号之间需要一个空格。这已在2011年新标准中“修复”。

有关详细信息,请参阅示例this question