Предположим, у меня есть функция шаблона:
template<class T>
void whenMatchesType(std::function<void(T*)> action) { ... }
Я мог бы вызвать это так:
anObject.whenMatchesType<SomeType>([=](SomeType *value) {
// ...
});
Хотя C ++ способен выводить параметры шаблона из аргументов простых, не Типы шаблонов, я не вижу возможности явно указать тип (как <SomeType>
) в этом случае - даже если он предоставляется в качестве параметра типа для первого аргумента.
Есть ли некоторые изменить мой код - или мою компиляцию - с помощью которого я мог бы избежать этой избыточности?