Aktywne Wpisy
luke-mat +423
Święta się zbliżają, a więc wożenie rodziny samochodem.
Pamiętaj, jeśli rodzina powie Ci "każdy płaci za siebie" i nie chce zapinać pasów.
Masz prawo powiedzieć: "Zapinasz pasy lub wysiadasz"
80kg Pasażer za kierowcą, bez pasów, przy stłuczce przy 50km/h uderza w fotel kierowcy z siłą 2 ton
#samochody #motoryzacja
Pamiętaj, jeśli rodzina powie Ci "każdy płaci za siebie" i nie chce zapinać pasów.
Masz prawo powiedzieć: "Zapinasz pasy lub wysiadasz"
80kg Pasażer za kierowcą, bez pasów, przy stłuczce przy 50km/h uderza w fotel kierowcy z siłą 2 ton
#samochody #motoryzacja
źródło: image
Pobierz
56632 +26
źródło: Screenshot_8
Pobierz




To prawdopodobnie jest głupie pytanie ale czy takie coś jest zdefiniowane?
const DBRow& DBTable::seeRow(qint32 row_id) const {
if (this != Q_NULLPTR) {
for (DBRow const*const row : rows) {
if (row->id == row_id) {
return *row;
}
}
}
return *new DBRow("empty");
}
Tzn. odnoszę się do wskaźnika który jest pusty i nie sprawdzam czy jest pusty bo jeżeli jest pusty - zwraca nowy obiekt o nazwie "empty". Działa elegancko ale nie chciałbym się zaskoczyć albo przyzwyczajać do rozwiązań które nie są takie fajne jak mi się wydaje...
Edit: pododawałem te niepotrzebne klamerki bo Wykop nie rozumie spacji...
if (this != Q_NULLPTR)ma rację bytu? Bo to mnie ciekawiło.
DBTable *t = Q_NULLPTR;
t->seeRow(0);
wtedy zostanie
Natomiast jako ciekawostka, cos podobnego było używane w MFC i z powodów historycznych VC nadal nie ma optymalizacji związanych z porównaniem this z nullptr.
gcc - http://stackoverflow.com/questions/20738232/gcc-4-9-undefined-behavior-sanitizer
clang - http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation