Чтобы избежать создания избыточных перегрузок функций при использовании std::function, можно следовать таким рекомендациям:
Убедиться, что каждая перегруженная функция имеет отличающийся набор параметров. code-basics.com Например, по количеству или типу параметров. code-basics.com
Дать функциям разные имена. code-basics.com Тип возвращаемого значения функции не учитывается при различении перегруженных функций. code-basics.com
Не объявлять одноимённые функции во вложенных областях видимости. habr.com Это не перегрузка, а конфликт, который может вызвать конфликты при расширении области видимости для разрешения перегрузки. habr.com
Использовать технику отключения шаблонов. habr.com Например, чтобы для целочисленных аргументов исключалась конкретизация шаблона, и при разрешении перегрузки выбиралась нешаблонная функция. habr.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.