Я сделал Dll с MSVS и успешно использовал метод pimpl, как показано ниже:
Файл включения Dll:
#include <memory>
#define DllExport __declspec( dllexport )
namespace M
{
class P
{
public:
DllExport P(/*some arguments*/);
DllExport ~P();
DllExport int aFunction (/* some arguments*/);
private:
class C;
std::unique_ptr<C> mc;
};
}
Файл приватного включения :
namespace M
{
class P::C
{
public:
# Other variables and functions which are not needed to be exported...
}
}
И файл cpp:
DllExport M::P::P(/*some arguments*/):mc(std::make_unique<C>())
{
# ...
}
DllExport M::P::~P(){ }
DllExport int M::P::aFunction (/* some arguments*/)
{
#...
}
Теперь я хочу реализовать такой метод в Qt creator. Какие изменения я должен сделать?
(я полагаю, мне нужно использовать QScopedPointer вместо unique_ptr, но какая форма реализации лучше для этого?)
PS: я установил clang в качестве компилятора.