È possibile limitare il tipo di argomenti in un costruttore variadic?Come posso creare un costruttore C++ che accetta un numero variabile di int
Voglio essere in grado di esprimere
X x1(1,3,4);
X x2(3,4,5);
// syntax error: identifier 'Args'
class X {
template<int ... Args> X(Args...)
{
}
};
// this works but allows other types than int
class Y {
template<typename ... Args> Y(Args...)
{
}
};
modifica per chiarire l'intento:
Quello che voglio raggiungere è quello di memorizzare i dati passati in un costruttore (costanti noti al momento della compilazione) in una matrice statica.
quindi ci sono alcune altre
template<int ...values>
struct Z
{
static int data[sizeof...(values)];
};
template<int ... values>
int Z<values...>::data[sizeof...(values)] = {values...};
e nel costruttore di X vorrei usare Z come questo:
class X {
template<int ... Args> X(Args...)
{
Z<Args...>::data // do stuff with data
}
};
Che è possibile, il nostro Devo usare integer_sequence?
Sei sicuro che le 'int's di OP sono costanti di tempo di compilazione? – Barry
@Barry - Sì, sono noti al momento della compilazione! –
@StaffanGustafsson - Sarebbero state utili informazioni nella tua domanda. –