这个bug在gcc中有解决方法吗?
具体来说,我认为在为pthread_mutex_t编译包装器时遇到了这个问题.标题看起来像:
class DerivedClass: public pthread_mutex_t{
public:
DerivedClass() {}
~DerivedClass(){}
DerivedClass someFunction(){}
};
Run Code Online (Sandbox Code Playgroud)
代码来自遗留系统,用于在GCC 3.2.x上编译,但不适用于GCC 4.1.2.
...理论上我想我可以在后台版本的GCC上重新编译所有内容,或者重构引用源以废弃包装器,但我想先看看是否有更简单的方法.
非常感谢.
该错误已在GCC 4.6.0中修复,但如果您现在需要,请使用组合:
class DerivedClass {
public:
pthread_mutex_t mutex;
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果你需要的是一个可以转换为a的类pthread_mutex_t *
,那么确保你的类没有虚函数,并将互斥量作为类中的第一个元素; 那么你就可以相互转换DerivedClass *
和pthread_mutex_t *
安全.或者添加一个operator pthread_mutex_t *()
.