Supponiamo di avere questa funzione :
- Codice:
void impostaDimensione(const Vec&);
- Codice:
template <class T>
class Vec
{
public:
Vec(T a, T b);
}
Il problema è questo: se chiamo nel main la funzione impostaDimensione nei primi due modi funziona, mentre nel terzo no.
- Codice:
void main()
{
impostaDimensione(Vec(10, 10)); // Primo modo
impostaDimensione({10, 10}); // Secondo modo
impostaDimensione(10, 10); // Oppure impostaDimensione((10, 10)); non funziona
}
Sostanzialmente il mio dubbio è: perche con le liste di inizalizzazione avviene la conversione implicita tra i valori interi passati come argomento nella funzione verso i parametri del costruttore, mentre non avviene con le normali parentesi tonde?