[01:07:41] <vlad2> Да, вроде быстрее стало.
[13:33:07] <valexey> .
[15:37:52] <valexey> vlad2: на форуме назревает срачик! скриптосрачик :-)
[16:49:35] <valexey> vlad2: а вы исключения в плюсах используете?
[16:49:43] <valexey> активно используете?
[18:29:01] <vlad2> Конечно.
[18:31:16] <vlad2> valexey тоже поддался бусту :)
[18:32:41] <valexey> vlad2: я поддался лени :-) ну, я бы мог вместо boost::any, написать какой-нибудь Variant абстрактный
[18:33:14] <vlad2> Э нет... boost::variant 'то уже дроугая тема :)
[18:35:04] <valexey> вариант бывает рукописный вариант :-)
[18:35:26] <valexey> в общем, я решил написать в примере нечто реалистичное :-)
[18:40:47] <vlad2> Угу. У нас он тоже есть. Так и называется Variant. Я вроде рассказывал насколько сильно я его ненавижу :) Уж лучше boost :)
[20:16:56] <valexеy> vlad2: каждый С++-программист должен написать свой variant/any!
[20:17:04] <valexеy> Я вот, помнится, писал когда-то :-)
[20:17:34] <vlad2> Клсассика это написать "свою строку" :)
[20:17:52] <valexеy> ну, строку это само собой :-)
[20:17:54] <vlad2> variant/any - это уже в эпоху Александрэску :)
[20:18:07] <valexеy> и вообще библиотеку контейнеров
[20:18:24] <valexеy> а еще раньше было (не знаю как сейчас) модно сваять свою GUI-либу :-)
[20:18:47] <vlad2> Да, да, темплейтный list - обязательно.
[20:19:12] <vlad2> GUI либа - это бесконечный проект. Нафиг-нафиг.
[20:19:13] <valexеy> не, у меня был бесшаблонный Variant :-) точнее оно звалось Property. Это было ужасно, но шаблоны было использовать нельзя (запрешено свыше).
[20:19:22] <valexеy> Таким мог бы быть вариант на обероне :-)
[20:21:30] <valexеy> чорт. у нас тут жара в 31 градус установилась. в сочетании с высокой влажностью. причем все это случилось внезапно. хоть из офиса не выползай.
[20:21:46] <vlad2> Хе-хе. У нас все лето такое ;)
[20:22:09] <vlad2> Причем в этом особенно злобно - меньше 30 в июле не падало.
[20:22:20] <valexеy> ну, небось до того две недели подряд дожди не шли
[20:22:38] <vlad2> Да, с дождями напряденка.
[20:29:17] <valexеy> vlad2: а как вы именуете свои классы? так же как в бусте, или иначе?
[20:29:50] <vlad2> андерскорами
[20:30:03] <vlad2> Я предпочитаю _t на конце (в отличие от буста)
[20:30:32] <valexеy> то есть у тебя типо class widget_t {}; // ?
[20:30:43] <vlad2> да
[20:30:51] <valexеy> не Widget, не TWidget, а именно вот так?
[20:30:56] <vlad2> угу
[20:31:05] <valexеy> (а еще бывает CWidget, брр!)
[20:31:17] <valexеy> Ну, вполне вменяемо.
[20:31:19] <vlad2> Да, такого у нас даже в ствром коде нет.
[20:31:44] <valexеy> у меня свои типы зачем-то с большой буквы начинаются.
[20:31:59] <vlad2> влияние других ЯП? :)
[20:32:04] <valexеy> с одной стороны не нужно в конце шлепать _t, но с другой стороны как-то не хорошо с бустами получается.
[20:32:04] <vlad2> жабаскрипт? ;)
[20:32:23] <valexеy> изыди! сегодня уже полчаса на отлов бага в тривиальном коде в этом js потратили
[20:32:31] <vlad2> угу
[20:32:52] <vlad2> да, js он такой, вэлкам ;)
[20:32:59] <valexеy> поубивал бы проектировщиков языка.
[20:33:06] <vlad2> зактопать :)
[20:34:01] <vlad2> У нас раньше были TClass, но потом как-то сошли на нет.
[20:35:26] <valexеy> это при том, что стажер легко разобрался и написал на java серверную часть - разобрался (точнее разобралась) с сервлетами, томкэтами и как вообще это все запускается. а вот в элементарном js случился fail.
[20:35:36] <valexеy> с большой буквы, по моему сам придумал. ну, или получил после отрывания мерзких борландовых T и MFCшных C от начала типа :-)
[20:36:39] <valexеy> Профит тащемто в том, что сразу видно что это тип. Минус в том. что не консистентно с бустом и стандартной либой. Но есть обратно преимущество - сразу видно что есть наше, а что чужое.
[20:37:40] <valexеy> Сейчас я склоняюсь к тому, чтобы с большой буквы именовать тех, кто имеет таблицу виртуальных функций, а с маленькой - простые типы. Но это конечно черевато - вдруг добавили виртуальных функций - все переименовывать.
[20:45:46] <vlad2> У меня есть желание различать типы, которые передаются по ссылке от типов, которые нужно передавать по значение (енумы прежде всего). Но это только желание.
[20:47:52] <valexеy> нужно или можно? :-)
[20:53:08] <vlad2> Нужно.
[20:53:33] <vlad2> Вообще тут у плюсов все как-то криво.
[20:54:01] <vlad2> Было бы лучше (в большинстве случаев), если бы компилятор сам выбирал способ.
[20:54:32] <valexеy> гм-гм. а у него есть для этого достаточно информации?
[20:55:00] <vlad2> С одной стороны не хочется постоянно писать мусор типа "const &", с другой стороны - потом запаришься стэпаться в дебагере, ну и ненужный оверхед.
[20:56:06] <valexеy> а какие проблемы в дежукере?
[20:57:10] <vlad2> Ну можно было банально запретить копирование в аргументах (все передается бы по ссылке). Но компилятор мог бы в каких-то случаях передавать по значению, если это эффективнее.
[20:57:29] <vlad2> В дебагере он начинает ходить по конструкторам копирования.
[20:58:25] <vlad2> Потому как передача аргнументов-структур по значению имеет ну очень специфическое пррименение.
[20:59:22] <vlad2> Вот пусть и было бы огорожено каким-нибудь спец значком, а дефолт чистый и понятный (без всяких const &)
[20:59:53] <valexеy> ну, в общем то в Аде, сколь я помню, есть передача указателя, если передача типа in, есть в виде out и есть inout, а какой именно механизм передачи в последних трех случаях будет использован - то программеру не ведомо. компилер сам решит.
[21:00:59] <valexеy> и в фортране тоже как-то так же.
[21:01:26] <valexеy> другое дело что у них с конструкторами напряг. в общем, я не берусь сейчас предсказать какие грабли вылезут в плюсах если сделать как-то так же.
[21:03:42] <valexеy> http://habrahabr.ru/post/148871/
[21:26:29] <valexеy> xxx: А как вы работаете программистами?
yyy: очень просто. вот представь мастерскую, где делают статуи, вот булыжник из мрамора, вот приходят из маркетинга и говорят нам нужны сиськи, потом говорят нам нужна жопа, потом говорят нам нужна нога. потом рука, потом рука не нужна, потом вторая нога и получается -
нога на голове, голова в жопе, жопа на сиськах, а сиськи на ногах. а потом нам говорят - а мы Венеру Милосскую хотели...
[22:28:11] <vlad2> /me занимается premature optimization (возможно) сравнивая строки по указателям, а не по значению.
[22:42:13] <valexеy> гы. что это ты?
[22:42:54] <valexеy> кроме того, одинаковые строки могут иметь разные адреса же. string a = "hello"; string b = "hello";
[22:42:56] <valexеy> и что тогда?