From: Mikhail Zabaluev <mhz@altlinux.org> To: devel@altlinux.ru Cc: Alexey Voinov <voins@voins.program.ru> Subject: [devel] Re: alternatives Date: Sun, 30 Mar 2003 15:35:40 +0400 Message-ID: <20030330113540.GA1430@mhz.mikhail.zabaluev.name> (raw) In-Reply-To: <20030330074431.GA2006@voins.local> [-- Attachment #1: Type: text/plain, Size: 2717 bytes --] Hello Alexey, On Sun, Mar 30, 2003 at 11:44:31AM +0400, Alexey Voinov wrote: > > > > на glib2 (1207356) и Без GObject и пр. имеем: -rwxr-xr-x 1 root root 435172 Фев 5 07:42 /usr/lib/libglib-2.0.so.0.200.1 Сам пакет большой, но в runtime это довольно компактная библиотека. > > Нужно учесть ещё накладные расходы на порождение кода из шаблонов. > > std::map<foo, bar> вряд ли даётся бесплатно. > Всё решается во время компиляции. > > Пример простого шаблона: > template <int i> > struct f { static const int r = i * f<i-1>::r; }; > > template <> > struct f<0> { static const int r = 1; }; > > Так вот, f<5>::r при компиляции заменяется костантой 120, а > f<10>::r --- 3628800. Где накладные расходы от шаблонов? > Я не вижу. Я говорил об std::map и других не вполне тривиальных классах. > > > переходе на менее удобный (для того, кто это пишет) > > > синтаксис? :) > > Более удобно -- это там, где опасным и неинтуитивным образом > > переопределяются операторы непонятно для чего? ;) > Конкретный пример можно? Оператор [] у std::map переопределён > неинтуитивно? Класс Ing::FileSystem переопределяет * и ++ явно в целях конспирации. Правильный operator++ должен возвращать отнюдь не bool. Кстати, если уж переопределять ++, принято ещё и постфиксную форму предоставлять. Непонятно, почему вообще немудрёный итератор по файловым деревьям назван FileSystem. И почему у него семантика линейного итератора. Мне известны как минимум два способа обхода дерева, см параметры утилиты file. Файловые ссылки добавляют неопределённости. Негибкий этот класс и в других отношениях: всегда делает fstat, нужно это или нет (тем более что fts_* вроде бы предоставляют и эти данные). В-общем, я не увидел здесь _полезного_ использования C++. > > > В чём преимущество предложенного? > > В том, что не надо думать, каким компилятором собраны > > библиотека и приложение. У нас сейчас полно головной > > боли из-за gcc 2.96 и gcc 3.2. А если кто-нибудь, > > не дай бог, захочет использовать компилятор Intel? > > Стандартный ABI уже есть, но он молод и недостаточно > > отлажен, не говоря уж о реализациях. > Не надо думать. У нас стандартный компилятор gcc3.2. Разработчики GCC пока не дали гарантии, что C++ ABI версии 3.2 окончательный. > Я скажу так: я начал делать свой вариант альтернатив на C (и без glib2), > но потом решил, что продуктивнее будет слать патчи к тому, что уже есть. > Постепенно это можно довести до очень неплохого состояния. Да, вероятно. Можно было бы постепенно сводить классы к их заменам на C. В отсутствие наследования это будет нетрудно. -- Stay tuned, MhZ JID: mhz@altlinux.org ___________ Sinners can repent, but stupid is forever. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2003-03-30 11:35 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-03-29 13:11 [devel] alternatives Mikhail Zabaluev 2003-03-29 16:24 ` [devel] alternatives, security issues of Mikhail Zabaluev 2003-03-29 16:46 ` Ivan Zakharyaschev 2003-03-29 21:34 ` [devel] " Mikhail Zabaluev 2003-03-29 19:15 ` [devel] " Alexey Voinov 2003-03-29 17:56 ` [devel] alternatives Alexander Bokovoy 2003-03-29 19:41 ` Alexey Voinov 2003-03-29 21:27 ` [devel] alternatives Mikhail Zabaluev 2003-03-30 7:44 ` Alexey Voinov 2003-03-30 11:35 ` Mikhail Zabaluev [this message] 2003-04-01 7:44 ` Stanislav Ievlev 2003-03-30 20:01 ` [devel] alternatives Igor Tertishny 2003-03-30 20:20 ` [devel] alternatives Mikhail Zabaluev 2003-03-30 22:07 ` Dmitry V. Levin 2003-03-31 7:29 ` [devel] alternatives Stanislav Ievlev 2003-03-31 23:09 ` [devel] alternatives Mikhail Zabaluev 2003-04-01 7:37 ` Stanislav Ievlev 2003-04-01 12:14 ` Mikhail Zabaluev 2003-04-01 13:00 ` Dmitry V. Levin 2003-04-01 19:13 ` Mikhail Zabaluev 2003-04-01 19:59 ` Dmitry V. Levin 2003-04-01 20:16 ` Mikhail Zabaluev 2003-04-01 20:23 ` Mikhail Zabaluev 2003-04-01 20:30 ` Dmitry V. Levin 2003-04-02 6:57 ` Michael Shigorin 2003-04-01 19:26 ` Mikhail Zabaluev 2003-04-01 10:36 ` [devel] no black box (was: alternatives) Michael Shigorin 2003-04-01 12:00 ` [devel] Re: alternatives Vitaly Ostanin 2003-04-02 6:55 ` Michael Shigorin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20030330113540.GA1430@mhz.mikhail.zabaluev.name \ --to=mhz@altlinux.org \ --cc=devel@altlinux.ru \ --cc=voins@voins.program.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git