#naukaprogramowania #cpp
Czy i jak moge uzyc nullptr, majac wczesniejsza wersje od c++ 11?
Na uczelni nie ma c++ 11, wiec mi sie tam nie skompiluje, a musi.
Czy i jak moge uzyc nullptr, majac wczesniejsza wersje od c++ 11?
Na uczelni nie ma c++ 11, wiec mi sie tam nie skompiluje, a musi.
- Najlepsze
- Wszystkie komentarze






@piszczalka: @wolodia: No jesli macie ochote to mozecie spojrzec: https://pastebin.com/Nk198pCp (chodzi konkretnie o linie 72).
Teraz tak sobie mysle, ze w pliku mozna dodac spacje na koniec, albo tak jak w for sprawdzac czy nie przekroczylo dlugosci.
@piszczalka: @wieczniezielony: Niekoniecznie! NULL jest implementation-defined, z tym że musi to być wyrażenie na liczbach całkowitych dające zero. A ponieważ większość implementacji wybiera właśnie zero, to dlatego ten kod działa. Ale działa tylko i wyłącznie przez przypadek, gdyż najzwyczajniej jest to logicznie niepoprawne.
Nie ma żadnego powodu aby stosować tam NULL zamiast 0, to tylko
@vydyah: Wlasnie mialem pytac o link, dzieki, napewno sie przyda.
@piszczalka: No to raczej pozamiatane. Dodam kom, ze jak zostanie NULL to moze sie wywalic i jak sie da to zmieniac na nullptr, bo nie mam pomyslu jak to inaczej rozwiazac. Trafie 0 z danych i sie wysypie;/
@wieczniezielony oj, jeśli masz taki problem w kodzie to znaczy, że robisz coś głupiego
@wieczniezielony: No coś na pewno robisz źle. NULL może powodować problemy jedynie przy czymś takim:
void f(int) {}
void f(double * ptr) {}
f(NULL);
__cplusplusaby wykryć brak wsparcia dla C++11 i zaimplementować coś prostego samemu, np. taka prosta implementacja umieszczona w namespace std.Można także po prostu zrobić coś takiego
#define std::nullptr NULL, ale nie jest to