使用多重继承的软件包使用基于CLANG的32位和64位编译器在C ++ Builder 10.1 Berlin Update 2中导致访问冲突。
只要具有多重继承的类具有实现代码,CLANG就会生成ICE。
这是一个触发问题的简单代码:
$.ajax({
type: 'get',
url: 'https://www.example.com/api/transactables',
headers: {
Authorization: 'Token token=xxxxxxxxxxxxxxxxxxxxxxxxx'
},
data: {
page: 1,
per_page:1
},
success: function (){
console.log('success!');
}
});
实施(必须在CPP中):
// vcl
#include <System.Classes.hpp>
class TClass1
{
public:
virtual __fastcall ~TClass1() = 0;
};
class PACKAGE TDummy : public TComponent, public TClass1
{
public:
/**
* Pure virtual VCL style destructor
*@note Needed to allow WTControlObserver destruction directly (otherwise children destructors
* are never called)
*/
virtual __fastcall ~TDummy()
{}
void __fastcall test();
};
我多次写信给Embarcadero,没有任何运气。我们陷入困境,因为没有这个我们的项目就无法编译。