Bon ben c'est bien beau tout ça, mais j'ai une question.
sera valide ou pas ?Code:bool b = nullptr;
Parce que d'un côté il y a le n2431 qui dit que nullptr ne sera convertible implicitement que vers des pointeurs, et de l'autre je me bat sur Wikipedia avec quelqu'un qui persiste à dire que c'est convertible vers bool, et il m'a filé une source que j'ai pas réussi à comprendre.
et il a mis comme source: http://www.open-std.org/jtc1/sc22/wg...008/n2697.htmlCitation:
While the original proposal specified that an rvalue of type nullptr should not be convertible to bool, the core language working group decided that such a conversion would be desirable, for consistency with regular pointer types. The proposed wording changes were unanimously voted into the Working Paper in June 2008.
Sauf que je comprend rien à ce papier, en fait. Je comprend qu'ils pensent à la compatibilité avec bool, mais j'arrive pas à décortiquer l'information de tout le reste de ce qui a été voté.
edit: j'ai trouvé ça: http://www.open-std.org/jtc1/sc22/wg...2008/n2656.htm
Donc apparemment, nullptr -> bool sera ok.
Mais je ne comprend pas l'intérêt, en fait.
Sachant que dans la précédente proposition, ceci était valide:
Je vois pas en quoi une convertion vers bool apporte, en fait. C'est pas comme si je suis contre non plus, mais bon.Code:
1
2 int* a = nullptr; if( a == nullptr ) // évalué à vrai
Tant que ça appelle bien une surcharge de pointeur et non de bool et que c'est guaranti par le standard...