- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
bool checkForExe(std::string ext)
{
return ext==".exe" ? true :
ext==".Exe" ? true :
ext==".eXe" ? true :
ext==".EXe" ? true :
ext==".exE" ? true :
ext==".ExE" ? true :
ext==".eXE" ? true :
ext==".EXE" ? true : false;
}
имхо, это может быть не быдлокод, а оптимизация...
бенчмарки в студию!
Какая Вы, уважаемый гость, няшечка
=3
Z от z находится на смещении, равном 0х20, как и вся латиница собственно, и от локали это не зависит... намного быстрей будет по кодам пробить, чем строки сравнивать.
если убрать из сравнения ненужную точку, то смори как будет:
1. в варианте, на который все думают, в стеке делаем строку, копируем в неё содержимое принятой, изменяем смещения каждого символа и сравниваем, так? итого - 3 операции копирования (на каждый символ) и 3 операции сравнения (максимум - может и сразу failнуть на первом), т.е. от 4 до 6 операций.
2. в случае сего говнокода имеем такой расклад: копирования нет, а есть только сравнения. В 99% случаев расширение стоит в lower case, поэтому сработает только первое условие, а это 3 операции )))
т.е. сей говнокод в 99% случаев выгоднее правильнее кода. правильный код - правильный, но будет тормознее в 99% случаев.
и где здесь проигрыш?))
пойду-ка дальше дышать бензином
почитал в вику, оказхывается в русском языке такая убогая терминология=\
твой мама тапкой толстый
return ext==".exe" ? true :
ext==".EXE" ? true :
ext==".Exe" ? true :
ext==".eXe" ? true :
ext==".EXe" ? true :
ext==".exE" ? true :
ext==".ExE" ? true :
ext==".eXE" ? true : false;
ext == ".exe" || ext == ".Exe" || ext == ".eXe"...
Вместо одного
http://www.govnokod.ru/2892#comment19499
Я думал C++ Standard Library == STL.
А был-бы тут хотя-бы факториал..
прозреваю заговор и прочую хуйню
{
return ext==".exe" || ext==".Exe" || ext==".eXe" || ext==".EXe" || ext==".exE" || ext==".ExE" ||
ext==".eXE" || ext==".EXE";
}
//C style
return !stricmp(".exe",ext.c_str());
Делаем так:
return ext==".exe" || ext==".Exe" || ext==".eXe" || ext==".EXe" || ext==".exE" || ext==".ExE" ||
ext==".eXE" || ext==".EXE";