- 1
const double pi = acos(-1.0);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1000
const double pi = acos(-1.0);
В каждой посылке codeforces - участника shentianxiao.
P.S. Он - китаец
qasef 08.01.2012 22:30 # +3
VisualPaul 08.01.2012 23:52 # 0
(ссылка на стандарт через часик)
VisualPaul 09.01.2012 17:41 # +1
VisualPaul 08.01.2012 23:58 # 0
Если кто-то думает что M_PI нет в MSVC++ то это неправда:
rat4 09.01.2012 09:15 # −1
Как будто define точное значение задаёт.
ps В glibc M_PI тоже есть
danilissimus 09.01.2012 11:14 # −1
VisualPaul 09.01.2012 11:38 # +1
VisualPaul 09.01.2012 11:38 # 0
eth0 09.01.2012 12:30 # 0
А в военное время значение синуса может достигать четырёх.
3.14159265 09.01.2012 12:48 # +3
VisualPaul 09.01.2012 12:52 # +4
JavaGovno 09.01.2012 16:02 # 0
VisualPaul 09.01.2012 17:36 # 0
Тем не менее.
Пункт 1. В этом коде ООП нет. и рассуждения про ООП в вашем тексте бессмысленны
Пункт 2. Далеко не всегда "толстая" стандартная библиотека - это хорошо. Скажем в качестве GUI в питоне есть tkiner - вещь неплохая но от Qt/GTK+ отстаёт и используется реже. Соответственно встаёт вопрос что она делает в стандартной поставке Python. Это только один пример. Стандарты де-факто зачастую удобнее. Особенно для таких языков как C/C++/Common Lisp, развитие которых регулируется ANSI/ISO - весьма нерасторопными организациями
Пункт 3. ООП в Java почти не отличается от такого в C++. Отличий три:
* Нет кейворда virtual зато есть final
* Всё наследуется от Object
* Нет множественного наследование
1 - е отличие - косметическое. Просто не надо жадничать время на виртуальные вызовы без надобности
2-е прекрасно компенсируется void * (я считаю что каст к Object и каст к void * одинаково ужасны)
3-е отличие делает OOP в Java более простым но не делает его иным принципиально
А про отсутвие в C++ больших стандартных библиотек - там есть зато более гибкие стандарты де-факто вроде Boost. Всё равно C++ для больших приложений где только стандартными библиотеками ни одного языка обойтись нельзя.
P.S. К тому же вы что, просто пришли в тему про C++ дабы обосрать C++. Толсто, толсто.
TheHamstertamer 09.01.2012 17:48 # +5
TarasB 09.01.2012 20:23 # +7
VisualPaul 09.01.2012 21:22 # 0
TarasB 09.01.2012 21:25 # +6
Говногость 19.01.2012 11:36 # 0
В С++ есть final как для класса, так и для виртуального метода. С++11.
Так что это даже не аргумент.
bugmenot 09.01.2012 18:31 # 0
тут любой индус - дорогой заграничный гость
VisualPaul 09.01.2012 18:34 # 0
bugmenot 09.01.2012 20:04 # 0
VisualPaul 09.01.2012 21:25 # 0
bugmenot 09.01.2012 22:01 # 0
ctm 10.01.2012 13:01 # 0
использование стандартной константы в принципе возможно оптимизировать компилятором, используя fldpi
любое расчетное или #define my_pi 3.14 это не позволяют в принципе.
VisualPaul 11.01.2012 21:07 # 0
ctm 12.01.2012 09:17 # +1
int test(int a, int b){
return (++ a / b) + (a ++ % b);
}
если передать константы, то оно считает при компиляции и подставляет результат.
А если передать какие-то вводные значения, то в конечном коде выполняется только 1 операция деления.
а вообще я имел ввиду оптимизацию такого вида:
lea eax, pi
fld qword ptr [eax]
или
fldpi
guest 15.09.2012 14:29 # 0