1. C++ / Говнокод #14771

    +46

    1. 1
    2. 2
    3. 3
    4. 4
    vector<int> v = {1, 4, 6};
    cout << "(";
    copy(v.begin(), v.end(), ostream_iterator<int>(cout, ", "));
    cout << ")";

    http://ideone.com/2j2jQG

    Запостил: LispGovno, 21 Февраля 2014

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

    • Ответить
    • И где говно? В последней запятой в выводе?

      Кстати в одном из черновиков стандарта проскакивало предложение добавить в ostream_iterator опциональный параметр: выводить ли разделитель после последнего элемента.
      Ответить
      • В С++14 как минимум.
        Ответить
      • > после последнего элемента
        А как он узнает, что элемент последний? :)

        Тогда уж выводить разделитель перед всеми элементами кроме первого. Это очень просто реализовать, а результат такой же.
        Ответить
        • Ну так в стандарте описывается поведение а не детали реализации. Там было вообще «использование в качестве разделителя». Кстати в примере к предложению как раз и было «перед всеми, кроме первого»

          http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3581.html
          В самом низу.
          Ответить
        • Крестопроблемы... btw разве нет функции, само собой знатно сдобренной шаблонами, которая возвращала ба string-builder по разделителю и итератору-строк?
          Ответить
          • > string-builder
            Ну string-builder в крестах это std::string_stream. А вот штатной склейки по разделителю вроде как нету. Ну по крайней мере мне не попадалась.
            Ответить
          • это есть в том, что ненужно тарасу
            и split, и join
            Ответить
    • где говно?
      http://ideone.com/aY3boz
      Ответить
      • показать все, что скрытоТвоя мать балдела от твёрдой горячей струи моей спермы, ударявшей ей прямо в горло.
        Ответить
      • лолы, лолами, но некоторые компилеры в педантик моде на последнюю опциональную запятую жалуются. типа а вдруг ты элемент забыл последний дописать?
        Ответить
        • Это какие? Я часто так делаю, проверил на сишке с clang 3.4 и gcc 4.8.1, никаких ворнингов.
          Ответить
          • gcc 3.x. DECовский компилер. IBM's xlC. само собой все ворнинги, плюс экстрасы/педантики, должны быть включены. в xlC и gcc этот ворнинг можно одиночно выключить - на DEC'е нет.
            Ответить

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