- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
#include <iostream>
#include <vector>
template <typename T>
struct Vec {
T x, y;
Vec& operator /=(const T& d) {
x /= d;
y /= d;
return *this;
}
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
#include <iostream>
#include <vector>
template <typename T>
struct Vec {
T x, y;
Vec& operator /=(const T& d) {
x /= d;
y /= d;
return *this;
}
};
Найдите баг в коде.
Посмотрел этот видос: https://www.youtube.com/watch?v=4M1MlW0sP0Q
Переформулируем так: при каком использовании этого класса можно получить какой багор.
Но тут компилятор не пропустит.
А так можно на ноль поделить.
Можно поделить на Vec, т.е. вектор на вектор хотя алгебраически такая операция не определена.
Отлично, очередные рассуждения о каком-то внутриязыковом говне в крестопараше. Можно будет просматривать его, если надо проблеваться.
Ссылки, значения, xvalue, pvalue объекты-хуекты какие-то блядь, мув-семантики... понапридумывали поебени какой-то
Даю еще сутки.
Так лучше?
текст давай
беглый взгляд говорит, что для тривиали копибал T работать будет, а что будет для классов в конструкторами надо думать, но я не С++сник
примерно с первого клика нашел, кстати
заставил меня открывать, вот и чего ты добился?
если проверить его (твой) пример на godbolt на -O2, то сук никакой разницы между конст реф и значением, что для даблов, что для интов
может, в 2017 была?
там юморо в том, что для тиривальных объектов можно вместо конст реф передать значение, бо нет разницы между константной ссылкой на единичку и самой единичкой?
если я пхну туда литерал 42.0, то у меня создасца временная переменная, и ссылка на нее передасца в оператор. Там на нее поделица, и сохраница значение. Затем, переменная уничтожица.
Vec<double> a = {2.0, 5.0};
a /= a.x;