我知道如果可能的话,我们应该更愿意在头文件中转发声明所有内容,但是 STL 呢?
我发现iostream有iosfwd。
如果我想在我的类中声明一个互斥体怎么办,如下所示:
class MyClass
{
.....
private:
std::mutex mMutex;
};
我应该在类头中包含互斥体头吗? 或者有没有办法转发声明它,例如:
class std::mutex;
class MyClass{...};
同样适用于chrono和thread。
对此的任何想法都表示赞赏。谢谢!
最佳答案
没有可移植的方法来转发声明 std::objects,除非指定(例如 <iosfwd>
)。并且 mutex
没有转发 header , thread
或chrono
.
关于C++11 前向声明线程、互斥体、计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642604/