【发布时间】:2014-12-24 22:16:52
【问题描述】:
我知道我们应该更喜欢在头文件中转发声明所有内容,如果可能的话,但是 STL 呢?
我发现 iostream 有 iosfwd。
如果我想在我的类中声明一个 mutex 怎么办,像这样:
class MyClass
{
.....
private:
std::mutex mMutex;
};
我应该在我的类头中包含互斥头吗? 或者有没有办法转发声明它,比如:
class std::mutex;
class MyClass{...};
chrono 和 thread 也是如此。
对此有任何想法。谢谢!
【问题讨论】:
-
无论如何,您都需要
std::mutex的完整定义。编译器必须知道mMutex的大小才能计算出MyClass的大小。
标签: c++11 stl forward-declaration