Я использую идиому с прыщами, чтобы предоставить клиенту точку доступа к моей DLL и скрыть все детали реализации Widget
.
class MYCLASS_API MyClass
{
public:
MyClass(ClassData &data);
~MyClass();
void Function1();
void Function2();
private:
Widget *p_impl;
};
Мне нужно передать нетривиальные данные в DLL (я бы регулярно использовал контейнеры STL, но я знаю, что это не рекомендуется), поэтому я предоставляю структуру ClassData
для использования клиентом.
Это разумный подход? Если да, то как мне спроектировать ClassData
? Поскольку не следует использовать контейнер STL, будет ли использование сырых указателей жизнеспособным решением?