А был ли мальчик? (помянем плюсы)

User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: А был ли мальчик? (помянем плюсы)

Post by Medium-rare »

Лучше не пытаться понимать всё, что написано. Моск глючит. :)
... and even then it's rare that you'll be going there...
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: А был ли мальчик? (помянем плюсы)

Post by flip_flop »

partner_ca wrote: 14 Jan 2018 08:20
Мальчик-Одуванчик wrote: 14 Jan 2018 07:54 STL - это, на минуточку, контейнеры и алгоритмы прежде всего. Одна из самых замечательных и мощных частей плюсов.
Плюсую.
Тоже в вашем лагере, хоть и не программист. Template meta-programming, честно приознаюсь - основное, что мне нравится в плюсах, и чего не хватает в чистом, голимом С. Eigen - замечательный пример.

Medium-rare, sorry, наверное добавил гкюков, простите великодушно.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: А был ли мальчик? (помянем плюсы)

Post by Сабина »

Мальчик-Одуванчик wrote: 14 Jan 2018 08:20 Ну вообще вся эта асинхронная красотища еще три десятка лет вполне себе присутствовала на голимом си, особенно в телекоме, где оформилась в виде actor модели, и чуть позже была реализована в языке эрланг. В хайп она попала лишь по прошествии угара по обьектно-ориентированныму программированию и переключением моды на функциональное. Но по-сути стюардессу опять откопали, как в том анекдоте.
Эта ли ?
Сссылки в студию плиз ... на три десятка лет назад
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: А был ли мальчик? (помянем плюсы)

Post by Medium-rare »

flip_flop wrote: 14 Jan 2018 22:14 Medium-rare, sorry, наверное добавил гкюков, простите великодушно.
Не про вас, вестимо. Больше про непонимание разницы между инструментом, и областью его приложения. Вы такого не писали. Да ладно. AndreyT лучше озвучит оную проблему обсуждения, если ему ещё интересен наш разговор бабуль на лавочке про C++.
... and even then it's rare that you'll be going there...
tau
Уже с Приветом
Posts: 514
Joined: 07 Dec 2001 10:01
Location: toronto

Re: А был ли мальчик? (помянем плюсы)

Post by tau »

M. Ridcully wrote: 14 Jan 2018 06:57 STL как раз одна из самых светлых частей C++.
Это только если в исходники не лазить, там будет много непривычного для начинающих.
Да и выдающиеся ошибки компилятора и линкера тоже могут кого хошь напугать с непривычки.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12017
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: А был ли мальчик? (помянем плюсы)

Post by M. Ridcully »

tau wrote: 15 Jan 2018 01:22
M. Ridcully wrote: 14 Jan 2018 06:57 STL как раз одна из самых светлых частей C++.
Это только если в исходники не лазить, там будет много непривычного для начинающих.
Да и выдающиеся ошибки компилятора и линкера тоже могут кого хошь напугать с непривычки.
STL - как раз тот не очень частый случай, когда лезть в исходники реализации библиотеки особого резона нет. Я когда-то давно очень, когда ещё под Windows программировал, залез исключительно из-за любопытства, и быстро убежал в ужасе. Такое ощущение было, что код был какой-то автоматической тулзой нагенерён.

Но дело даже не в том, что код (по крайней мере, той реализации, что с Visual Studio тогда шла) кучерявый. Просто из исходников вы почерпнёте знания только о той конкретной реализации. А STL это, в первую очередь, спецификация. Начинающим нужно потратить какое-то время (весьма небольшое) на то, чтобы вдумчиво почитать документацию. Может, мне просто повезло, что я начал знакомиться с STL из оригинальной статьи Степанова - как-то удивительно быстро всё на свои места встало.

Проблемы с STL по-моему бывают у людей, который пытаются сразу чего-то напрограммировать, полагаясь на интуицию или ещё что. Но это совершенно не тот случай, когда "метод тыка" работает.

Вообще, безотносительно STL, меня частенько расстраивает, что люди так часто полагаются на bottom-up подход, когда top-down был бы более уместным. Или боятся потратить чуток времени на чтение или написание документации, и потом тратят в разу больше на ...хм, беспорядочный тык. :D
Мир Украине. Свободу России.
User avatar
Prosche
Уже с Приветом
Posts: 8090
Joined: 08 Nov 2004 12:24
Location: GA

Re: А был ли мальчик? (помянем плюсы)

Post by Prosche »

Феерический топик, вначале хотел "рвать и метать", а потом решил, что он показательный, в реальной жизни народ так же мнит что знает плюсы, а по факту такая ахинея из под пера выходит. :%)
Элементарную вещь спросишь, сидят, не вдупляют. Вот например, что делает этот код? (вопрос риторический, не надо отвечать), ведь классика:

Code: Select all

template <bool b>
struct А {};
template <>
struct А<true>
{
    static void a() {}
};
Добрая половина знатоков плюсов отвалится. :)
А 0х11 и выше это вообще вышка, народ просто ничего не втыкает. У меня тут эпик фейл приключился. Сведу пример к простейшему:

Code: Select all

    struct A
    {
        A() {};
        A(A&&)
        {
           std::cout << "Move constructor";
        }
        A(const A&)
        {
            std::cout << "Copy constructor";
        }
    };
    A&& func(A& a)
    {
        return std::move(a);
    }
int main(int argc, const char * argv[])
{
    A a;
    func(a);
    return 0;
}
Вот эта тривиальная вещь порвала мозг всем. Вопрос был, что выведется в консоль?
Старики заявили, что копи конструктор, "продвинутая" молодежь, что "конечно же мув". О том, что не выведется ничего не допер НИКТО.
Так что не было никакого мальчика, умер еще при родах. Язык остался не понятым подавляющим большинством пользователей. :)
Last edited by Prosche on 15 Jan 2018 06:18, edited 1 time in total.
User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: А был ли мальчик? (помянем плюсы)

Post by Medium-rare »

Куриоз был.
... and even then it's rare that you'll be going there...
User avatar
Prosche
Уже с Приветом
Posts: 8090
Joined: 08 Nov 2004 12:24
Location: GA

Re: А был ли мальчик? (помянем плюсы)

Post by Prosche »

Medium-rare wrote: 15 Jan 2018 06:09...
Исправил. Копипастил. Но дело там не в этом. А так...Можно и с констом. const_cast никто не отменял.
User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: А был ли мальчик? (помянем плюсы)

Post by Medium-rare »

Да понял. Спасибо за интересный пост.
... and even then it's rare that you'll be going there...
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: А был ли мальчик? (помянем плюсы)

Post by Мальчик-Одуванчик »

Cо вторым примером понятно, а в чем фишка первого?
User avatar
Prosche
Уже с Приветом
Posts: 8090
Joined: 08 Nov 2004 12:24
Location: GA

Re: А был ли мальчик? (помянем плюсы)

Post by Prosche »

Мальчик-Одуванчик wrote: 15 Jan 2018 06:27 Cо вторым примером понятно, а в чем фишка первого?
Фишка? обьяснить что перед нами статический ассерт.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: А был ли мальчик? (помянем плюсы)

Post by Мальчик-Одуванчик »

Prosche wrote: 15 Jan 2018 06:33
Мальчик-Одуванчик wrote: 15 Jan 2018 06:27 Cо вторым примером понятно, а в чем фишка первого?
Фишка? обьяснить что перед нами статический ассерт.
В коде первого примера я его не вижу, чтобы он случился стоило бы обьявить утверждение с ним.
tau
Уже с Приветом
Posts: 514
Joined: 07 Dec 2001 10:01
Location: toronto

Re: А был ли мальчик? (помянем плюсы)

Post by tau »

M. Ridcully wrote: 15 Jan 2018 04:11 STL - как раз тот не очень частый случай, когда лезть в исходники реализации библиотеки особого резона нет.
В общем-то - да, я согласен, в подавляющем большинстве случаев можно и без этого обойтись.
Хотя я вот наблюдал ситуацию, когда портирование несложного в принципе кода с MacOs на windows доставило много радости из-за наличия custom allocators, которые замечательно компилировались на MacOs, но не на windows. Или, скажем, те же custom allocators работали быстрее стандартного под MacOs, вдруг оказались медленнее стандартного на windows в той же, казалось бы, ситуации.
Так что, иногда приходится лезть в дебри, хотя, на мой персональный взгляд, по настоящему сложный код читать достаточно тяжело.
User avatar
AndreyT
Уже с Приветом
Posts: 3003
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: А был ли мальчик? (помянем плюсы)

Post by AndreyT »

Prosche wrote: 15 Jan 2018 05:53 Вот например, что делает этот код? (вопрос риторический, не надо отвечать)
Что "делает" код, состоящий только из объявлений? Вопрос действительно риторический...
Prosche wrote: 15 Jan 2018 05:53 , ведь классика:
???
Prosche wrote: 15 Jan 2018 05:53Сведу пример к простейшему:
Старики заявили, что копи конструктор, "продвинутая" молодежь, что "конечно же мув".
"Отцы" ввалят за грязь в коде - лишняя `;` после определения конструктора. Да, можно. Но тем не менее...

И отдельно добавят, что спецификация языка не оговаривает поведение текстовых потоков в ситуациях, когда последняя строка в текстовом потоке не заканчивается символом перевода строки.
Last edited by AndreyT on 15 Jan 2018 18:29, edited 1 time in total.
Best regards,
Андрей

Return to “Вопросы и новости IT”