Article View: pl.comp.lang.c
Article #309901Re: W której wersji standardu C lub C++ pracujecie?
From: Wojciech Muła
Date: Mon, 02 Sep 2019 17:59
Date: Mon, 02 Sep 2019 17:59
52 lines
4036 bytes
4036 bytes
On Friday, August 16, 2019 at 4:02:16 PM UTC+2, Maciek Godek wrote: > Żeby nie być gołosłownym, oto przykłady: > > W definicji szablonu zapis > > s.foo<T>(); > > może w pewnych okolicznościach spowodować błąd składni, bo symbol "<" zostanie zinterpretowany jako znak mniejszości, i trzeba pisać > > s.template foo<T>(); No OK, składnia związana z szablonami bywa trochę dziwna i czasem trzeba coś podpowiedzieć kompilatorowi. Jest to jednak problem, który pojawia się rzadko. Tak, używam templejtów w praktyce. > Klasa std::initializer_list nie ma zdefiniowanego operatora indeksowania. > Dlaczego? Bo nikt nie wpadł na to, żeby go dodać. std::initializer_list fajnie wygląda na slajdach, ja ostatni raz std::initializer_list użyłem, gdy pisałem implementację std::string. W kodzie produkcyjnym ta klasa ma zastosowanie zerowe i są głosy, żeby ją wywalić. > Inny przykład, z prezentacji Scotta Meyersa na DConfie w 2014 roku > https://www.youtube.com/watch?v=KAWA1DuvCnQ&feature=youtu.be > (fragment między 16:40 a 22:00) Ojej, bo taka jest definicja domknięcia w C++... przykład kompletnie z międzypośladzia. > Albo wykwity w rodzaju xvalue reference. O których w codziennej pracy nie ma potrzeby wiedzieć. Zresztą, w tym zachwalanym C masz jakieś rvalue i lvalue. > Co do generycznych rozwiązań, napisałem kiedyś na Quorze taką odpowiedź: > https://www.quora.com/What-are-some-examples-of-bad-code/answer/Panicz-Godek No proszę Cię, wziąłeś mega chujowy kod (który wygląda jak port z plain C) i oczekujesz, że w takim ścierwie ktoś stworzył dobre abstrakcje? > Generyczność w C również jest ułomna, ale przynajmniej dla tej ułomności można znaleźć jakieś uzasadnienie. Mhm, a ułomności C++ nie mają źródła, siły nadprzyrodzone. :) > Natomiast pracując w C++ zawsze miałem wrażenie, jakbym - oprócz zmagania się z problemem - musiał dodatkowo ładować energię w zmaganie się z językiem. Owszem, język jest koślawy i trzeba czasu, żeby dobrać sobie pasujący zestaw narzędzi. Problemem jest też to, że jego biblioteka standardowa przez długi czas była cholernie słaba, co spowodowało powstanie dużej liczby rozwiązań własnych wzajemnie niekompatybilnych. w.
Technical Details
Message-ID:
<5b3e4b0c-491c-4b07-a9cd-46ac32ab6cbe@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin.stu.neva.ru!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o24no3469004qtl.0!news-out.google.com!d29ni417qtg.1!nntp.google.com!o24no3468997qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<a1fbe21b-aed9-4b32-9691-a824c4e31a21@trust.no1> <3f1215b5-3c16-4248-a74f-1b57d21d4c98@googlegroups.com> <87bc6801-f62d-410e-831c-0e92d68705a5@trust.no1> <b5f4eb95-eaf8-42e5-8335-8ca1e576adfc@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:6007:: with SMTP id u7mr29325639qkb.92.1567447175508; Mon, 02 Sep 2019 10:59:35 -0700 (PDT) X-Received: by 2002:a25:b78c:: with SMTP id n12mr22059670ybh.373.1567447175244; Mon, 02 Sep 2019 10:59:35 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin.stu.neva.ru!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o24no3469004qtl.0!news-out.google.com!d29ni417qtg.1!nntp.google.com!o24no3468997qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Mon, 2 Sep 2019 10:59:34 -0700 (PDT) In-Reply-To: <b5f4eb95-eaf8-42e5-8335-8ca1e576adfc@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=217.97.91.24; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn NNTP-Posting-Host: 217.97.91.24 References: <a1fbe21b-aed9-4b32-9691-a824c4e31a21@trust.no1> <3f1215b5-3c16-4248-a74f-1b57d21d4c98@googlegroups.com> <87bc6801-f62d-410e-831c-0e92d68705a5@trust.no1> <b5f4eb95-eaf8-42e5-8335-8ca1e576adfc@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <5b3e4b0c-491c-4b07-a9cd-46ac32ab6cbe@googlegroups.com> Subject: Re: W której wersji standardu C lub C++ pracujecie? From: Wojciech Muła <wojciech_mula@poczta.onet.pl> Injection-Date: Mon, 02 Sep 2019 17:59:35 +0000 X-Received-Bytes: 4380 X-Received-Body-CRC: 316791028 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit