Questa è la dichiarazione del C++ 03 di serie, §14.7.1p5:Confuso su implicita modello di istanza
Se il processo di risoluzione di sovraccarico può determinare la funzione corretta di chiamare senza istanziare una definizione di modello di classe , è non specificato se quell'istanziazione ha effettivamente luogo. [Esempio:
template <class T> struct S { operator int(); }; void f(int); void f(S<int>&); void f(S<float>); void g(S<int>& sr) { f(sr); // instantiation of S<int> allowed but not required // instantiation of S<float> allowed but not required };
- fine esempio]
Non riesco a capire questo punto. Ha un comportamento indefinito?
ho trovato un altro similar problem, che anche io non capisco. Qui viene spiegato che il comportamento corretto non è definito, ma cosa significa?
qui: MSVC: Implicit Template Instantiation, though templated constructor not used
Anche se il [C++ definizioni] (http://stackoverflow.com/q/2047172/54262) potrebbe aiutarlo più di C del, dal momento che ha apparentemente una copia dello standard C++. –
Conosco le avvertenze sul comportamento definite/non specificate/definite dall'implementazione .. Ma ho bisogno di un chiarimento su questo programma .. –