Как перенести варидовое количество `std :: pare` с разными 2 -м типами к функцииC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как перенести варидовое количество `std :: pare` с разными 2 -м типами к функции

Сообщение Anonymous »

Извините за неспособность объяснить первичный Q в самом заголовке из -за сложности проблемы.

нужно передать различные типы типов std :: pare < /code> s метода, как ниже: < /p>

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

foo({1, 1} , {2, 2.2}, {3, "3"});  // 'first' is always `int`
< /code>

Однако я не смог найти синтаксис для  как определить foo () < /code> с использованием варидных шаблонов? Следовательно, ниже предложение исключено: < /p>

template
void foo (Args&&... args) { ... }

template using pair = std::pair;
foo(pair{1, 1} , pair{2, 2.2}, pair{3, "3"});
< /code>



Для всех, кто заинтересован, что я собираюсь делать с различными парами < /code> s. Перегруженная функция будет вызвана во всех аргументах ... 
(с использованием массива), и все вторые значения будут преобразованы в std :: string . Для тех, кто не знает знаменитую массивную трюк: < /p>

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

const string array[] = { MyFunc(std::forward
(pairs)) ... };
аналогичный (но не дублированный) Вопрос: Передача множества std :: pare to variadic template Constructor с использованием {}, {}


Подробнее здесь: https://stackoverflow.com/questions/383 ... -a-functio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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