Maybe it would be possible to export only some interfaces
(with needed functionality-aggregation(s) by (smart-)pointers) ? :)
class CInsideClass; typedef std::auto_ptr<CInsideClass> CSafeInsider;
class (exp_decoration_here) IExpInterface
{
CSafeInsider m_cInsider;
public:
IExpInterface(..);
};