🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309466

Re: Zabrali kopiowanie przy zapisie...

#309466
From: Wojciech Muła
Date: Tue, 10 Oct 2017 07:31
26 lines
2887 bytes
On Tuesday, October 10, 2017 at 3:35:56 AM UTC+2, bartekltg wrote:
> A na poważnie, dlaczego string ma być immutable? 
> Przecież moge chcieć tworzyć string literka po literce. 

Tu wracamy do tego, co napisałem na początku: C++ spieprzył
design stringa. (Chociaż ze string_view jest teraz trochę lepiej).

Powinny być osobne stringi immutable, osobne mutable, albo
lepiej buildery do stringów. Zauważ, że są różne sposoby
budowania napisów. Z mojej praktyki:
* doklejasz po jednym znaku;
* doklejasz inne stringi (np. sformatowane liczby);
* kasujesz podzakresy;
* zamieniasz jedne podciągi na inne;
* albo tylko zmieniasz literki (np. lowercase), bez zmiany długości
napisu.

Niestety, C++ upchnął za dużo odpowiedzialności w jedną klasę przez
co implementacja musi być generyczna, więc dla jednych scenariuszy
będzie szybka dla innych nie - i nie wiesz dla których. :)

A może w ogóle pomysł, żeby string musiał ciągłym obszarem pamięci
jest przesadą. Łatwiej byłoby przyjąć, że string to zbiór obszarów
pamięci. To się da łatwo ukryć za fasadą iteratora.

w.
Technical Details
Message-ID: <c8b4dab5-5afa-45a4-a3d8-67bc8a5b2aee@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!k31no805353qta.1!news-out.google.com!r5ni1093qtc.1!nntp.google.com!k31no805352qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <or4v67$ene$1@node1.news.atman.pl> <72ac4d9c-806c-4c0d-9d17-e6a1bca634cb@googlegroups.com> <148be543-e417-4b7b-aaa1-5fad87fe41bd@googlegroups.com> <137swhz7qzvw7.dlg@tyczka.com> <6a1a94c7-2d75-4569-8fae-574fb23c919e@googlegroups.com> <d73024b7-92e0-49f9-b827-bfc7b639739b@googlegroups.com> <73ec442f-1a8b-43fc-a06f-a5534a6f3438@googlegroups.com> <da509e00-e7ff-49bb-8870-b77b25bcc560@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.237.59.10 with SMTP id p10mr11028769qte.6.1507620662451;        Tue, 10 Oct 2017 00:31:02 -0700 (PDT)
X-Received: by 10.31.115.6 with SMTP id o6mr313982vkc.13.1507620662423; Tue, 10 Oct 2017 00:31:02 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!k31no805353qta.1!news-out.google.com!r5ni1093qtc.1!nntp.google.com!k31no805352qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Tue, 10 Oct 2017 00:31:02 -0700 (PDT)
In-Reply-To: <da509e00-e7ff-49bb-8870-b77b25bcc560@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=195.66.98.6; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
NNTP-Posting-Host: 195.66.98.6
References: <or4v67$ene$1@node1.news.atman.pl> <72ac4d9c-806c-4c0d-9d17-e6a1bca634cb@googlegroups.com> <148be543-e417-4b7b-aaa1-5fad87fe41bd@googlegroups.com> <137swhz7qzvw7.dlg@tyczka.com> <6a1a94c7-2d75-4569-8fae-574fb23c919e@googlegroups.com> <d73024b7-92e0-49f9-b827-bfc7b639739b@googlegroups.com> <73ec442f-1a8b-43fc-a06f-a5534a6f3438@googlegroups.com> <da509e00-e7ff-49bb-8870-b77b25bcc560@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c8b4dab5-5afa-45a4-a3d8-67bc8a5b2aee@googlegroups.com>
Subject: Re: Zabrali kopiowanie przy zapisie...
From: Wojciech Muła <wojciech_mula@poczta.onet.pl>
Injection-Date: Tue, 10 Oct 2017 07:31:02 +0000
X-Received-Bytes: 2906
X-Received-Body-CRC: 2808792788
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit