- 1
Point3D& operator /= (const float f) { x/=f; y/=f; z/=f; return *this; }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
Point3D& operator /= (const float f) { x/=f; y/=f; z/=f; return *this; }
ебать я лох
gost 06.07.2016 12:37 # 0
https://ideone.com/KIDRbI
Dummy00001 06.07.2016 13:46 # 0
с каких крестов так писать можно? - в смысле `x(x)` - потому что раньше компилеры "путались" где было поле, где был аргумент к'тора.
gost 06.07.2016 13:50 # +2
defecate-plusplus 06.07.2016 14:00 # 0
и более того, компилер вместо того, чтобы поругаться, просто инициализировал пустое поле самим собой
вот только не помню, это были проблемы гцц 3.х или вижуалстудии -05/-08
Dummy00001 06.07.2016 14:44 # 0
если сидишь на долгосрочных проектах с относительно старыми тул-чейнами, то совсем не обязательно что бы оно было "давно".
inkanus-gray 07.07.2016 00:48 # +1
MSVC 9.0 — Ok.
Борманд C++ 5.5 — Ok.
Open Watcom C++ 1.9 — Ok.
Digital Mars 8.42 — Ok (если удалить неймспейсы).
g++ -std=c++98 (версия 4.8.1) — Ok.
Даже не знаю, какое бы старое говно потестировать...
inkanus-gray 07.07.2016 01:05 # +1
Dummy00001 07.07.2016 01:07 # +3
guest 08.07.2016 19:23 # 0
gpyrou_nemyx 04.10.2019 21:53 # +1
inkanus-gray 04.10.2019 22:08 # 0
guest8 04.10.2019 22:14 # −999
KingKong 15.10.2019 01:52 # −11
rss 15.10.2019 18:22 # 0
TarasB 06.07.2016 20:16 # 0
laMer007 06.07.2016 13:15 # +3
x*=a;
y*=a;
z*=a;
Dummy00001 06.07.2016 14:49 # +1
x*=a;
y*=(a/x)*x;
z*=((a/x)*x + (a/y)*y)/2.;
laMer007 06.07.2016 16:23 # 0
Dummy00001 06.07.2016 16:46 # +1
inkanus-gray 06.07.2016 21:46 # +2
Так лучше.
inkanus-gray 06.07.2016 21:57 # +5
(a + b)² = a² + 2ab + b²;
(a - b)² = a² - 2ab + b²;
____________________
(a + b)² - (a - b)² = 4ab.
Следовательно, ab = [(a + b)² - (a - b)²]/4. Разумеется, смысл есть, если на какой-то платформе возведение в квадрат считается быстрее, чем умножение (например, таблица квадратов уже посчитана).
Тогда x *= a заменяем на x = pow((x + a)/2, 2) - pow((x - a)/2, 2);
CTOMATOJlOr 17.11.2022 00:41 # 0
Soul_re@ver 06.07.2016 13:24 # 0
dxd 06.07.2016 13:49 # +3
TarasB 06.07.2016 20:16 # +3
guest8 04.10.2019 22:13 # −999
3_dar 06.07.2016 20:03 # 0
TarasB 07.07.2016 16:37 # 0
Steve_Brown 07.07.2016 16:50 # 0
TarasB 07.07.2016 17:21 # +2
guestinho 07.07.2016 17:28 # +2
TarasB 07.07.2016 23:38 # −1
barop 11.09.2016 00:31 # 0
Porosjenko 11.09.2016 18:16 # 0
guest 17.09.2016 21:12 # 0
guest8 04.10.2019 21:11 # −999
3_dar 09.09.2016 21:18 # 0
fajes_rown 09.09.2016 21:32 # 0
3_dar 09.09.2016 22:18 # −2
barop 10.09.2016 12:48 # −3
bagor 10.09.2016 12:49 # −63
CTEPTOP 10.09.2016 14:32 # −65
+1...
guest 10.09.2016 22:01 # 0
guest11 04.10.2019 21:29 # −102
guest8 04.10.2019 21:13 # −999