Article View: pl.comp.lang.c
Article #309896Re: W której wersji standardu C lub C++ pracujecie?
From: Maciek Godek
Date: Fri, 16 Aug 2019 14:02
Date: Fri, 16 Aug 2019 14:02
41 lines
3710 bytes
3710 bytes
W dniu piątek, 16 sierpnia 2019 15:04:18 UTC+2 użytkownik Queequeg napisał: > > Od C++ wolę się trzymać z daleka. > > Dlaczego? Bo z mojego doświadczenia tworzy więcej problemów, niż rozwiązuje. Ma tak skomplikowaną składnię, że sami twórcy sobie z nią nie radzą, a mechanizmy abstrakcji są w nim tak skopane, że nie da się w nim tworzyć generycznych rozwiązań. Ż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>(); https://en.cppreference.com/w/cpp/language/dependent_name#The_template_disambiguator_for_dependent_names Klasa std::initializer_list nie ma zdefiniowanego operatora indeksowania. Dlaczego? Bo nikt nie wpadł na to, żeby go dodać. 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) Albo wykwity w rodzaju xvalue reference. 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 Co prawda tylko przypadkowo dotyczyła C++a, ale początkowo próbowałem stworzyć dobre rozwiązanie w C++. Ostatecznie się poddałem, właśnie ze względu na to, że nie było dla mnie oczywiste, w jaki sposób zaprojektować w C++ generyczny interfejs do algorytmu A*. (Dla kontrastu, w Haskellu i Schemie było to całkiem oczywiste). Zadałem do tej pory kilku C++owym fanbojom wyzwanie, żeby spróbowali dostarczyć generyczne rozwiązanie w C++, i do tej pory nikt mu nie podołał. Generyczność w C również jest ułomna, ale przynajmniej dla tej ułomności można znaleźć jakieś uzasadnienie. 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.
Technical Details
Message-ID:
<b5f4eb95-eaf8-42e5-8335-8ca1e576adfc@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!feeds.phibee-telecom.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!f14no6188464qtq.0!news-out.google.com!d29ni1725qtg.1!nntp.google.com!f14no6188452qtq.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>Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:6392:: with SMTP id x140mr8981139qkb.114.1565964135169; Fri, 16 Aug 2019 07:02:15 -0700 (PDT) X-Received: by 2002:a81:3313:: with SMTP id z19mr6820013ywz.188.1565964134942; Fri, 16 Aug 2019 07:02:14 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!feeds.phibee-telecom.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!f14no6188464qtq.0!news-out.google.com!d29ni1725qtg.1!nntp.google.com!f14no6188452qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Fri, 16 Aug 2019 07:02:14 -0700 (PDT) In-Reply-To: <87bc6801-f62d-410e-831c-0e92d68705a5@trust.no1> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.68.153; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 213.192.68.153 References: <a1fbe21b-aed9-4b32-9691-a824c4e31a21@trust.no1> <3f1215b5-3c16-4248-a74f-1b57d21d4c98@googlegroups.com> <87bc6801-f62d-410e-831c-0e92d68705a5@trust.no1> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <b5f4eb95-eaf8-42e5-8335-8ca1e576adfc@googlegroups.com> Subject: Re: W której wersji standardu C lub C++ pracujecie? From: Maciek Godek <godek.maciek@gmail.com> Injection-Date: Fri, 16 Aug 2019 14:02:15 +0000 X-Received-Bytes: 3970 X-Received-Body-CRC: 1448925481 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit