C++17 In Detail

14 September 2019

C++ Links #36 - How to start with modern C++, Concepts & Books!

Welcome to new C++ Links - most relevant and useful articles, podcasts and videos that happen between 6st and 13th September 2019.

Today you will find links to an article about how to implement StringConvertible concept, how to get started with Modern C++, an article about issues with C++20 Ranges, new books and many other!

  1. Marius Bancila wrote a blog post about C++20’s Concepts implementation in the preview version of MSVC 16.3 (see tools section later). Have a quick look at how to implement StringConvertible concept:
    mariusbancila.ro/blog/2019/09/12/cpp20-concepts-in-visual-studio-2019-16-3-preview-2/

  2. Shafik Yaghmour wrote a summary of how to get started with Modern C++. See the recommended books, videos and other sources. Shafik also describes a set of handy tools to help you with coding.
    shafik.github.io/c++/learning/2019/09/05/getting_started_learning_cpp.html
    And here's a GitHub repo where you can add your ideas: github.com/shafik/cpp_learning

  3. A new episode of C++ Weekly from Jason Turner - he explains what is a high-order-function (functions that take other functions as arguments or return a function)
    youtube.com/watch?v=NoIJoL3cIJ4

  4. Jonathan Boccara, on his blog, showed how he changed his pipes library recently. In short, he had some dirty workaround called pipes::funnel, that was replaced with the detection idiom:
    fluentcpp.com/2019/09/10/good-news-for-the-pipes-library-pipesfunnel-is-now-gone/

  5. In the second article at FluentC++, this time we have a guest post with a negative view about Ranges that went into C++20. The author describes the downsides of the new library: compile-time, incrementing smart iterators and other limitations:
    fluentcpp.com/2019/09/13/the-surprising-limitations-of-c-ranges-beyond-trivial-use-cases/
    The article also has a long discussion at this r/cpp thread

  6. Second post from Marius Bancila - he described const, constexpr, consteval and constinit (from C++20 perspective)
    mariusbancila.ro/blog/2019/09/10/let-there-be-constants/

  7. New post from Rainer Grimm - about profiles inside C++ Core Guidelines. Profiles are a subset of rules of the C++ core guidelines for specific concerns such as type safety, bounds safety, and lifetime safety:
    modernescpp.com/index.php/profiles-in-the-c-core-guidelines

  8. New CppCast episode - interview with Miro Knejp, about upcoming CppCon and the C++ extensions that are out there and probably won’t ever be standardized:
    cppcast.com/miro-knejp-cpp-extensions/

  9. Video from CopperSpice - about std::any and std::optional:
    youtube.com/watch?v=6A3Y3YDTC-0

Tools Update

  1. C++20 Concepts Are now available in Visual Studio 2019 version 16.3 (preview)! MSVC is the first compiler that supports the official C++20 specification of Concepts. The support is still not fully complete, but you can experiment with this powerful feature!
    devblogs.microsoft.com/cppblog/c20-concepts-are-here-in-visual-studio-2019-version-16-3/

Two new books at Amazon!

“C++17 in Detail” by Bartlomiej Filipek is now available in Print @Amazon!

“C++17 - The Complete Guide” by Nicolai Josuttis is also available in Print @Amazon!

Other

Extra: See meeting C++ Blog roll from 6th September:
meetingcpp.com/blog/blogroll/items/Meeting-Cpp-Blogroll-200.html

The links are brought to you through collaboration with Wojciech Razik.
Wojtek is a Senior C++ developer at Thaumatec, currently writing software for a face & iris recognition device. He enjoys reading C++ Standard before bed, and he loves to hate JS from dawn to dusk.
If you know Polish, take a look at cpp-polska.pl where Wojtek is one of the co-authors.

C++17 In Detail
© 2017, Bartlomiej Filipek, Blogger platform
Disclaimer: Any opinions expressed herein are in no way representative of those of my employers. All data and information provided on this site is for informational purposes only. I try to write complete and accurate articles, but the web-site will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use.
This site contains ads or referral links, which provide me with a commission. Thank you for your understanding.