8 sierpnia 2014

[C++11] nullptr

W C/C++ przyjęło się oznaczać pusty wskaźnik przez NULL, jednak identyfikator ten zostanie rozwinięty i tak do 0. Może to doprowadzić do pewnej niejednoznaczności, gdy posiadamy dwie przeciążone funkcje:
int foo(int);
int foo(char *);
Jeżeli NULL zostanie rozwinięte do 0L (ponieważ standard nie gwarantuje, że będzie to 0 - 32bity), to w takim przypadku nie mamy pewności, która metoda zostanie zawołana. Nowy standard wprowadza nowe słowo kluczowe nullptr (będące typu std::nullptr_t). Stała ta nie może być przypisywana ani porównywana z typami całkowitymi, może jednak porównywać ją z dowolnym typem wskaźnikowym.

Źródła:

Brak komentarzy:

Prześlij komentarz