totoro
> Какой смысл в этой конструкции, если вместо нее всегда можно напрямую вызвать pointer с соответствующим набором параметров?
Например, не дать голым апишным функциям бесконтрольно выделять ресурс, а вместо этого заставить функцию отрабатывать внутри конструктора/фабрики, сразу же инкапсулируя хэндл выделенного ресурса, который будет автоматически освобождаться в деструкторе (опять же через указатель освобождающей апишной функции в параметрах шаблона, только уже не метода, а всего класса).
Еще вариант применения - декораторы.
Dmitry_Milk
> Еще вариант применения - декораторы.
Декоратор явно перекрывает методы декорируемого объекта. А тут мы пытаемся просунуть внутрь некой функции сферического коня в вакууме и что-то там с ним сделать. Ничем хорошим это, конечно же, не закончится.
Dmitry_Milk
> Например, не дать голым апишным функциям бесконтрольно выделять ресурс
Тебе какой апи дали, с таким и жить. Если это винапи - то это тяжелое наследие чистого си. Если это Qt Framework - то С++ со встроенным метаобъектным компилятором. В любом случае, тебе придется писать код в навязанной парадигме, никакими ухищрениями тебе ее поменять не удастся. Максимум что ты можешь сделать - написать некий промежуточный слой и скрыть в нем системный/библиотечный/сетевой/какойугодно код за собственным интерфейсом.