Дизайн библиотеки: скрытие зависимостей

Я пытаюсь создать библиотеку, которая использует стороннюю библиотеку для внутреннего использования, но я не хочу показывать эту стороннюю библиотеку пользователю моей библиотеки. Таким образом, при сборке статической библиотеки пользователю понадобятся только мой заголовок и скомпилированная библиотека.

Как мне работать с закрытыми членами в моих определениях классов, которые определены в сторонней библиотеке?

Например . ,

заголовок:
#include "ThirdPartyLib.h"
class DummyClass
{
    TypeFromThirdParty tftp;

public:
    bool checkStuff(const float) const;
};
реализация:
#include "ThirdPartyLib.h"
#include "dummy.h"    
bool DummyClass::checkStuff(const float t)
{
    return tftp.isOk(t);
}

Оскорбительная часть является#include "ThirdPartyLib.h" в заголовке, так как тогда пользователю моей библиотеки понадобится больше, чем моей библиотеке.

Одним из способов обойти это может быть предварительное объявление всех сторонних типов, используемых в заголовке, а затем замена типов значений ссылками, но мне интересно, есть ли другой метод или дизайн, который я полностью пропускаю?

Ответы на вопрос(1)

Ваш ответ на вопрос