AFAIK Nie można zautomatyzować kodowania z poziomu kodu, wykrywając obsługę nullptr
.
W praktyce można przeczytać, że jako “ niemożliwej ”, to ’ s dość silny “ AFAIK ”.
Należy więc użyć specjalnego kodu i/lub polecenia kompilacji. Na przykład, w każdym odpowiedniego źródła dodać
#include <cpp/nullptr.h>
aw poleceniu build dostosować zawierać ścieżkę tak, że przez kompilator z nullptr
wsparcia, to podnosi pusty nagłówek, a dla starego kompilatora, że brakuje nullptr
, to odbiera nagłówek, który definiuje go à la Meyers (na przykład).
A następnie sprawdź bardzo dokładnie!
Nazywam ogólną koncepcję posiadania wielu wersji nagłówka, z jednym wybranym przez polecenie budowania, wirtualny nagłówek. Można zbudować wokół niej wiele maszyn, w tym konwencje, które mają sens tylko w bardziej ogólnym przypadku. Na szczęście nie jest to konieczne w tym konkretnym przypadku, ale być może warto o tym pamiętać.
Podsumowując: tworzenie kodu źródłowego C++ sprawia, że magicznie nie ma na czym poprzestać. Dodanie odrobiny pomocy na poziomie kompilacji wydaje się słuszne. :-)
Czy to prawda? Nie, nie bardzo. Jeśli 'NULL' byłyby równoważne' nullptr', nie byłoby żadnego powodu, aby wprowadzić tę funkcję w pierwszej kolejności. O co nas pytasz? Czy twój kod * skompiluje *? –
Sprawdź to rozwiązanie: http://stackoverflow.com/questions/8747005/backporting-nullptr-to-c-pre-c0x-programs – Alexander
'defined (nullptr)' zawiedzie, ponieważ 'nullptr' jest słowem kluczowym, a nie definiować. – Griwes