Кресты / Говнокод #27210 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
#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

Запостил: 3_dar 3_dar, (Updated )

Комментарии (21) RSS

  • Понятно, что сейчас налетят питухи, и скажут, что как может быть баг в коде, который ничего не делает.

    Переформулируем так: при каком использовании этого класса можно получить какой багор.
    Ответить
    • Ну только если тип T не является группой с делением.
      Но тут компилятор не пропустит.
      А так можно на ноль поделить.
      Можно поделить на Vec, т.е. вектор на вектор хотя алгебраически такая операция не определена.
      Ответить
      • Привет, Уранетз. Ну как, нашёл работу?
        Ответить
      • Нет, задумано не это. Подсказка в названии видео.
        Ответить
  • > Посмотрел этот видос: https://www.youtube.com/watch?v=4M1MlW0sP0Q

    Отлично, очередные рассуждения о каком-то внутриязыковом говне в крестопараше. Можно будет просматривать его, если надо проблеваться.

    Ссылки, значения, xvalue, pvalue объекты-хуекты какие-то блядь, мув-семантики... понапридумывали поебени какой-то
    Ответить
  • Как-то тухло. Где борманд, где инканус, где макака, где посрать-плюсплюс, где ГОСТ, где остальные???
    Даю еще сутки.
    Ответить
    • не буду смотреть видео
      текст давай

      беглый взгляд говорит, что для тривиали копибал T работать будет, а что будет для классов в конструкторами надо думать, но я не С++сник
      Ответить
    • ну в твоем видео есть ответ на твой ответ, в районе 20 минуты
      примерно с первого клика нашел, кстати
      заставил меня открывать, вот и чего ты добился?

      если проверить его (твой) пример на godbolt на -O2, то сук никакой разницы между конст реф и значением, что для даблов, что для интов
      может, в 2017 была?
      Ответить
      • Я знаю ответ. Очень понравился какой багор, после чего решил сюда занести.
        Ответить
      • видео не сомтрел

        там юморо в том, что для тиривальных объектов можно вместо конст реф передать значение, бо нет разницы между константной ссылкой на единичку и самой единичкой?
        Ответить
        • Там юмор в том, что если передать по ссылке или по значению, код будет работать по разному.
          Ответить
          • разве не должно всегда передаваться по ссылке, если заявлено в сигнатуре? или для примитивных типов компилятор может схитрить?
            Ответить
            • Если сигнатуру поменять на «по значению» - код пофиксится. Нужно сказать какой именно кейс пофиксится. Тип примитивный. template я добавил чтобы запутать потому, что const double& передавать - это говно какое-то, и бросается в глаза.
              Ответить
              • хуй вас крестоблядей знает

                если я пхну туда литерал 42.0, то у меня создасца временная переменная, и ссылка на нее передасца в оператор. Там на нее поделица, и сохраница значение. Затем, переменная уничтожица.
                Ответить
  • мне похрен на С++ с их головной болью. я свой TypeScript компилятор на LLVM пишу. там не будет этого г-на как мувинги и хрени. все поинтер все только хардкор 🙂
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8