- 1
- 2
- 3
- 4
if (request->status().is_success() &&
(request->GetResponseCode() / 100) == 2) {
/* блаблабла */
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+154
if (request->status().is_success() &&
(request->GetResponseCode() / 100) == 2) {
/* блаблабла */
}
Было случайно откопано в исходниках хромиума (http://src.chromium.org/svn/trunk/src/webkit/appcache/appcache_update_job.cc). И первый вопрос который возникает это "Ну вот нахера???".
т.к. нужны коды 2хх и 3хх => оптимизация
оу, это же целочисленное, я позабыл..
Между тем, проблема как стоит? Обработать коды вида 2xx -- т.е. трёхцифровые, первая цифра (сотни) равна 2. Эта запись -- и есть буквальная (и наиболее естественная, с моей точки зрения) запись решения.
Может быть на другом языке можно было бы записать проще: request->GetResponseCode() ~ /^2..$/, но в C++ это было бы громоздко и глупо.
потому как наблюдается тавтология
ибо когда статус-код равен 2xx - запрос был successful
Например встречается такое:
code = request->GetResponseCode();
if ((code >= 200) && (code < 300))
но уж точно не делить на 100 и сравнивать с 2.
Что это? Где оно?
и это в любом случае лучше,чем деление + сравнение.