Je sais que les avertissements ne sont pas définis par la norme,
alors c'est seulement pour résoudre un mystère que je vous pose
la question suivante. Comprenez-vous pourquoi VC 7.1 me donne un
avertissement avec le type unsigned long (de 32 bits) mais pas
avec le type unsigned (de 32 bits aussi !), dans le code suivant :
#include <algorithm>
class C1
{
public :
typedef unsigned size_type;
size_type size() const;
// ...
};
class C2
{
public :
typedef unsigned long size_type;
size_type size() const;
// ...
};
int main()
{
C1 c1a, c1b;
std::min(c1a.size(), c1b.size()); // OK
C2 c2a, c2b;
std::min(c2a.size(), c2b.size()); // Pas OK
// warning C4172: returning address of local variable or temporary
}
La fonction std::min est tout à fait normale, mais c'est vrai
qu'elle manipule des références, qui sont ici associées à des
temporaires.
Alors l'avertissement, on devrait l'avoir dans les deux cas... Mais ce serait encore plus agaçant !
L'avertissement ne me semble pas fonde.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
"Michel Michaud" <mm@gdzid.com> writes:
// warning C4172: returning address of local variable or temporary
}
La fonction std::min est tout à fait normale, mais c'est vrai
qu'elle manipule des références, qui sont ici associées à des
temporaires.
Alors l'avertissement, on devrait l'avoir dans les deux cas...
Mais ce serait encore plus agaçant !
L'avertissement ne me semble pas fonde.
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Alors l'avertissement, on devrait l'avoir dans les deux cas... Mais ce serait encore plus agaçant !
L'avertissement ne me semble pas fonde.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org