Функция вариального шаблона не выводит правильный тип аргумента шаблонаC++

Программы на C++. Форум разработчиков
Anonymous
Функция вариального шаблона не выводит правильный тип аргумента шаблона

Сообщение Anonymous »

У меня есть функция шаблона с переменными аргументами, которая должна взять на себя аргумент типа и возвращать результат более длинного типа (то есть долго для int , Double для float>, int для короткого и т. Д.) Всегда оценивается как const int & и возвращение неожиданных результатов, не оценив подписанный char . Мне нужен способ обеспечить соблюдение типа TS для типа t .

Код: Выделить всё

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]

Вернуться в «C++»