From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-0.0 required=3.0 tests=BAYES_20 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: Ada and "early return" - opinion/practice question Date: Mon, 15 Mar 2021 12:05:03 -0700 Organization: A noiseless patient Spider Message-ID: <87mtv4utk0.fsf@nightsong.com> References: <38356aa9-b8b0-4e0b-a490-99e7b239d0b1n@googlegroups.com> <86eegge32o.fsf@stephe-leake.org> <077ed5ef-61c9-4178-a21c-e0955d5da12fn@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="4b578c364627d4ab9243657a1b501040"; logging-data="19850"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Ed20wTdSXr41NHFBU5UZE" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Cancel-Lock: sha1:CGu75qQ14pTDqB7FMr1W/ry7s2E= sha1:5g2vb9mJ7WEYTVvtwblM9etfBso= Xref: reader02.eternal-september.org comp.lang.ada:61536 List-Id: John McCabe writes: > In recent months, where I've been learning more and more about the ins > and outs of "modern c++", I'm becoming more and more inclined to ditch > it and use something where the language designers appear to want to > address issues in a way that's consistent and relevant to their users' > needs, rather than just fannying around to try to prove how clever > they are. It's a real improvement over old c++ despite the hacky stuff they had to do to get it to work in the general framework of C++. The notoriously clumsy template error messages should improve some with the use of the c++20 constraints (aka concepts) feature: https://en.cppreference.com/w/cpp/language/constraints The book "Effective Modern C++" by Scott Meyer is very good, but is a few years old (C++17 or so, iirc) and doesn't include this newest stuff. This also helps: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md