Шаблон для tuple

144
13 декабря 2018, 06:10

У меня есть нечто такое

using size_win = std::tuple<int, int, int, int>;
static void SetSize(int, int, int, int);
void GlWindow::SetSize(int a, int b, int c, int d)
{
    Size = { a,b,c,d };
}

И я хочу заменить функцию SetSize() на шаблонную SetParam()

template<typename Param, typename... Type>
static void SetParam(Param&, Type&...);
template<typename Param, typename... Type>
void SetParam(Param &p, Type&... t)
{  
    std::get<i>(p) = { t, ... };
}
SetParam(Size, 200, 200, 800, 600);

Но не могу понять как это сделать - в таком виде она не работает.

Answer 1

Тут можно обойтись без рекурсии:

template <typename Tuple, typename ...P> void SetParam(Tuple &t, P &&... p)
{
    t = {std::forward<P>(p)...};
}
READ ALSO
Использование юникода в консоли

Использование юникода в консоли

Работаю MS VS 201, Win 7Следующий код выводит не тот символ, какой надо:

149
C++ WinApi Качество рисования

C++ WinApi Качество рисования

Если например рисовать круг на окне, то он получается нечетким, как рисовать/рендерить более точно неровные примитивы?

166
Специализация шаблонного класса

Специализация шаблонного класса

Есть шаблонный класс:

133
Генерация больших целых значений

Генерация больших целых значений

Как сгенерировать значения, допустим от 10000 до 99999? Используя Mathrandom() проскакивают четырех-,шести- значные

173