- 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). И первый вопрос который возникает это "Ну вот нахера???".
theli 11.03.2011 17:39 # −1
т.к. нужны коды 2хх и 3хх => оптимизация
absolut 11.03.2011 17:51 # 0
theli 11.03.2011 18:13 # +2
mindfreakthemon 11.03.2011 17:40 # −2
оу, это же целочисленное, я позабыл..
absolut 11.03.2011 17:41 # +2
ddkprog 12.03.2011 02:38 # +1
g00d 12.03.2011 10:26 # 0
gegMOPO4 12.03.2011 12:27 # 0
absolut 12.03.2011 12:43 # 0
gegMOPO4 12.03.2011 13:04 # 0
Между тем, проблема как стоит? Обработать коды вида 2xx -- т.е. трёхцифровые, первая цифра (сотни) равна 2. Эта запись -- и есть буквальная (и наиболее естественная, с моей точки зрения) запись решения.
Может быть на другом языке можно было бы записать проще: request->GetResponseCode() ~ /^2..$/, но в C++ это было бы громоздко и глупо.
bugmenot 12.03.2011 13:06 # 0
потому как наблюдается тавтология
ибо когда статус-код равен 2xx - запрос был successful
gegMOPO4 12.03.2011 13:22 # 0
absolut 12.03.2011 13:24 # 0
Например встречается такое:
ctm 14.03.2011 11:36 # +3
code = request->GetResponseCode();
if ((code >= 200) && (code < 300))
но уж точно не делить на 100 и сравнивать с 2.
Lure Of Chaos 15.03.2011 00:20 # 0
rat4 15.03.2011 09:10 # +1
Что это? Где оно?
Lure Of Chaos 15.03.2011 17:43 # +2
ctm 18.03.2011 11:43 # 0
и это в любом случае лучше,чем деление + сравнение.
bugmenot 15.03.2011 09:26 # 0
absolut 15.03.2011 11:00 # −1
Lure Of Chaos 15.03.2011 17:44 # −2