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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #ifdef _MSC_VER
    #  if ( _MSC_VER <= 1800) // MSVC 2012 / 2013
    typedef std::vector<char>& vector_ref;
    #  else
    typedef std::vector<char>&& vector_ref;
    #  endif
    #else
    typedef std::vector<char>&& vector_ref;
    #endif
    
    auto func = std::bind([this](vector_ref v) { /* ... */ }, std::placeholders::_1);

    тут говна вагон и маленькая тележка
    Во-первых, версии студии, компилятора студии и _MSC_VER всегда разные. Сложно даже представить человека который решил "а давайте распространять компилятор по версии SDK, а проверять по левому числу, не являющемуся ни тем ни другим?"
    Во-вторых, поддержка c++11 в msvc 2012/2013 удручает. В 2012 нет даже type aliases, потому и typedef.
    В-третьих, кривая реализация bind (rvalue-версия не соберется в студиях 12/13, lvalue - в более поздних).

    Запостил: Antervis, 11 Сентября 2017

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

    • >Во-первых, версии студии, компилятора студии и _MSC_VER всегда разные. Сложно даже представить человека который решил "а давайте распространять компилятор по версии SDK, а проверять по левому числу, не являющемуся ни тем ни другим?"

      На кой хер поддерживать разные вижуалстудии? Почему бы например не поддерживать только самую последнюю и GCC(mingw)?


      >Во-вторых, поддержка c++11 в msvc 2012/2013 удручает. В 2012 нет даже type aliases, потому и typedef.

      Ну это ничего, можно напихать #ifdef и сделать две версии - одну с type aliases, другую с typedef.


      >В-третьих, кривая реализация bind (rvalue-версия не соберется в студиях 12/13, lvalue - в более поздних).

      Даже не знал что в говновизуалстудиях такой пиздец творится.

      Но ничего, я считаю что все правильно, плюсобляди должны страдать
      Ответить
      • > Почему бы например не поддерживать только самую последнюю
        Потому что далеко не каждая контора обновляет парк IDE каждый год - это так-то денег стоит, и немало.
        Ответить
        • Кстати вот нахера нужно саму IDE обновлять, почему бы не обновить лишь компилятор? Или мелкософт свой новый компилятор продает только в комплекте со своей говноIDE? Мне вот лично их говностудия нахер не нужна, мне вполне достаточно обычных консольных утилит для компилирования, линковки и проч., как это сделано в mingw каком-нибудь, и потом уже туда цеплять свою IDE, если надо
          Ответить
          • Хотя это отлично вписывается в описанное тут http://delphikingdom.ru/asp/viewitem.asp?catalogid=254
            “НЕ ДЕЛИ – НЕ ПРИДЕТСЯ ДЕЛИТЬСЯ”. Оно почти напрямую следует из предыдущего правила. Человек, приходя к Вам в магазин, очень обеспокоен количеством чего-либо. Когда он видит цену, он обеспокоен количеством его личных денег. Поэтому, если Вы будете продавать программу по частям, он купит у Вас часть, причем наименьшую. Остальное будет пылиться у вас на полке. И вам придется уволить программистов, которые это писали. Поэтому ПРОДОВАЙТЕ ВСЕ СКОПОМ. Наш гамбургер является неотъемлемой частью Кока-колы. “ЭМЭСДОС” был неотъемлемой частью ПК ИВМ. А “Основняк” частью “ЭМЭСДОС”. В результате за год, я получил 3 миллиона людей готовых с руками оторвать книги по “ЭМЭСДОС” и по “Основняку”. Другой пример. Моя офисная программа. До этого существовало отдельно и редакторы, и электронные таблицы, и многое другое. Я все это объединил и в сумме этот комплект стоил меньше, чем общая цена отдельно существующих компонентов. В результате, покажите мне ПК, где нет моей программы. Еще пример, наш пакет “Студия”. В него мы запихнули “Це++”, “Основняк”, СУБД, документацию разработчика программ и драйверов, а также отладчик критических ошибок ОС и многое другое. И последний пример. Это меня спасло. В конце 1996 года мне пророчили финансовый крах. Дело в том, что я не очень серьезно воспринимал Сеть и ее небезопасный протокол. В то время как, компания “Солнечные микросистемы” разработала для нее язык, а компания “Шкаф” переделала свой старый проект “Мозаика” для модемных клиентов с поддержкой этого языка. Их продажи стали расти. Мои падать. Но я победил за один месяц! Я выпустил ПАТЧ для ОС, для “Офиса” и для других продуктов. Куда я запихнул, то, что сделали эти умники. А так как это патч, то сделал я это бесплатно. И дальше стал «продавать» бесплатно. “НЕ ДЕЛИ – НЕ ПРИДЕТСЯ ДЕЛИТЬСЯ” и я снова на вершине. Я продаю МОНОЛИТЫ. Никаких кирпичей.
            Ответить
          • Можно долго рассказывать о том, что бывает с теми, кто пытается скачать "только компилятор" от студии (и упаси господи его использовать). Судя по моему личному опыту, по отдельности это всё попросту не будет работать.
            Ответить
      • > На кой хер поддерживать разные вижуалстудии? Почему бы например не поддерживать только самую последнюю и GCC(mingw)?

        Надо поставлять библиотеки вместе с устройствами. Кому-то для 12-й студии, кому-то для 17-й. Вот с gcc/mingw можно и только последнюю версию поддерживать, они бинарно обратно совместимы (да и forward за редким исключением тоже). Что плавно подводит нас к еще одной говнистой особенности студии: двух бинарно совместимых версий студии попросту не существует.

        > Ну это ничего, можно напихать #ifdef и сделать две версии - одну с type aliases, другую с typedef.

        Напомню: там #ifdef потому что иначе не работает
        Ответить
    • Итак, у меня есть говнокод, а у вас - нет.
      Ответить

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