Лучшая готовая к использованию реализация, которую я нашел на данный момент, - это Poco (Portable Components - аккуратная среда C ++).
Существует класс Poco::ObjectPool
- см. Документацию здесь . Вы можете настроить его несколькими способами, предоставив собственную фабрику, которая создает, проверяет, деактивирует и уничтожает объекты.
Также странно, что на момент написания этого ответа на их сайте не было последнего сгенерированного документа - мой последний исходный код Poco имеет более новую версию с некоторыми новыми функциями, например, есть параметр тайм-аута для borrowObject()
, который был для меня критически важным.