C'è un modo per dedurre il tipo di una lista per evitare di dover passare il tipo di argomento che dovrebbe essere la lista, basta dedurlo dal primo tipo di elemento.Deduce Argument Type For Variadic Template?
template<typename T, T... Args>
struct Calc
{
// do stuff with Args
};
// Usage:
Calc<int, 1, 2, 3>::value;
typename<T... Args> Calc { }; // error T undefined
// Desired:
Calc<1, 2, 3>::value; // auto deduced T = int
Calc<1.0f, 2.0f, 3.0f>::value; // auto deduced T = float
C'è un modo per ottenere il comportamento desiderato o devo includere il tipo come parametro?
Si potrebbe provare a utilizzare dynamic_cast <> - se si sa quali sono i tipi possibili, cioè. – RockOnRockOut
No, questo tipo di detrazione non è ancora possibile, sebbene sia stato proposto prima: http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3601.html – Brian
Dichiarazione di valore come std :: common_type potrebbe funzionare? –
mattnewport