Код: Выделить всё
template
R ssum(const Ts&... args)
{
return (R(args) + ...);
}
< /code>
Функция использует определение некоторого типа длинного размера предоставленного типа: < /p>
template struct long_t {};
template struct long_t { using t = short; };
template struct long_t { using t = wchar_t; };
< /code>
Вот код для проверки функции: < /p>
int main()
{
long_t::t sx = ssum(255, 255, 255);
long_t::t usx = ssum(255, 255, 255);
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79766674/variadic-template-function-doesnt-infer-the-correct-type-of-the-template-argume[/url]
Мобильная версия