Article View: pl.comp.lang.c
Article #309466Re: Zabrali kopiowanie przy zapisie...
From: Wojciech Muła
Date: Tue, 10 Oct 2017 07:31
Date: Tue, 10 Oct 2017 07:31
26 lines
2887 bytes
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-mailReferences:
<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