Итак, у меня есть шаблонная функция с аргументом по умолчанию 2 nd .Это 1 st аргумент может быть выведен, так что-то вроде:
template <typename F, typename S = int>
void foo(const F param)
В общем случае это работает нормально, я просто позвоню foo(bar)
.Но в случае, когда я хочу указать второй аргумент, я не могу сделать это: foo<char>(bar)
, потому что char
принимается за F
.Очевидно, что это не так, потому что bar
не является char
, поэтому F
должно быть выводимым.
Есть ли способ, которым я могу передать только один аргумент шаблона, который будет применяться кS
, по-прежнему выводится F
и по умолчанию S
в общем случае?