В отличие от объявлений функций с пакетами параметров, я обнаружил, что классам требуется тип для каждого аргумента в угловых скобках...
Component<IntegerPair, int, int> temp(40, 5);
... что кажется излишним. Вот как я определил Component
:
template<typename T, class... T_Args>
class Component
{
public:
Component(T_Args... args)
: m_data(args...)
{}
T m_data;
};
- Есть ли способ удалить
int, int
из приведенного выше утверждения? - Если да, можно ли его удалить?
- Кроме того, мой способ создания экземпляра
m_data
безопасен? При использованииstd::forward<T_Args>(args)...
мой компилятор сказал мне, что у меня нет конструктора, который мог бы преобразовывать все типы аргументов.
std::make_pair
is, или шаблон конструктора. - person jrok   schedule 19.07.2015T_Args&&
, чтобы использовать идеальную переадресацию - person tkausl   schedule 19.07.2015