0

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

#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
4

2 回答 2

2

在 中放置一个空格>>以防止它被视为右移运算符:

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

对于 C++11 编译器,这不是必需的,因为编译器会将尖括号解释为在可能的情况下关闭模板参数列表。

于 2011-12-24T15:57:15.107 回答
2

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

例如,请参阅此问题以获取更多信息。

于 2011-12-24T15:58:30.397 回答