0

我很困惑...

因此,我有一段代码;

 class logger
{
public:

  std::mutex mut;
  unique_lock< std::mutex> lk(mut);

  // ... snip ... 
}

“unique_lock < std::mutex > lk (mut)” 行编译失败,出现此错误;

**g++ -pthread --std=c++11 main.cxx main.cxx:42:31: error: mut is not a type

unique_lock<std::mutex> lk(mut);**

但是,如果我将其更改为...(请注意大括号初始化程序是唯一的区别)

unique_lock< std::mutex> lk(mut);

它编译得很好。

我有其他代码使用工作/编译良好的非大括号初始化程序进行初始化。到底为什么会这样,也许我累了:)

干杯

G

4

1 回答 1

0

呸……我累了。我在类初始化中使用 C++11... 仅适用于大括号。该回家了...

..几个月后...注意花括号...

类记录器{

上市:

std::mutex 互斥;unique_lock<std::mutex> lk{mut};

}

于 2018-03-15T17:25:34.273 回答