c++类中的静态声明

static declaration in a c++ class

本文关键字:静态 声明 c++      更新时间:2023-10-16

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

#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

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

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

在c++ 11编译器中,这就不需要了,因为编译器会将尖括号解释为关闭模板参数列表。

在c++ 03及更早版本中,两个右尖括号之间需要一个空格。这在2011年的新标准中已经"修复"了。

有关更多信息,请参见此问题的示例