element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Single-Board Computers
  • Products
  • Dev Tools
  • Single-Board Computers
  • More
  • Cancel
Single-Board Computers
Forum Learning C++20 - Progress with Standard Template Language
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Single-Board Computers requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 1 reply
  • Subscribers 55 subscribers
  • Views 1215 views
  • Users 0 members are here
  • stl
  • c++
Related

Learning C++20 - Progress with Standard Template Language

Jan Cumps
Jan Cumps over 3 years ago

Follow up on:
Try out C++20 Preview: set up a development environment
Sorting in the C++20 release

When I wrote the posts above, a good year ago, I started to learn the latest evolutions in C++.
I didn't want to just poke around, but do a thorough training. I purchased this e-book: C++ Standard library (also available in print). By Rainer Grimm.
I've used the STL extensively in my job - I was C++ developer in the 2nd half of the 90's. That allows me to use this book to focus on the concepts new to C++20.
I'm trying to temper my enthousism a little, because I am a Rainer Grimm and STL fanboy, but: this is a great book.

As the title indicates, it doesn't focus on new language constructs but on the template library. While doing that, Rainer manages to sneak in a lot of the new language changes.
(I think) that the majority of changes are in the STL and in concurrent programming, so there is significant overlap by default.

For my learning journey, I've set up Eclipse and the latest GNU toolchain for Windows (if you check my other posts: also for Ubuntu, Pi, ..., but I digress).
Then I walked through all chapters, and tried all examples:

image

image: Eclipse ready to debug a C++ STL example. To avoid that I have to create a project for each example, I created a project for the whole book. When I'm finished testing an example, I exclude it from build and start with the next one.

Having the examples in a debugger, and step through what's happening, is my preferred learning method for software.
I like to bite into the code. Drill into the statements, view variables, view changes.
That way, they stick into my memory forever. If I read - even with full focus - I tend to forget after a while. Stepping through seems to fix the processes in my memory.

The STL book is well organised. There's a natural flow in three ways:

  • from overall usable to more specific and niche
  • from easy to difficult
  • from known traditional concepts to revolutionary changes

The two first, I think, are self explaining. The third subject is less intuitive. But that's where new concepts can be learned that aren't C++ specific, but show where software development is evolving.
I'm name-dropping one: lambda functions. But there's a number of concepts that help to make executable logic object-savvy.

Last kudo is to the C++ governance team, for taking care that the evolution doesn't increase the footprint. Most changes extend the way you can code your intents, without generating a bigger or slower execution. And some of them deal with fat that was added in previous language increments.

image

image: customer action photo

If you're interested in evolving together with the C++ language: Rainer Grimm's blog Modern C++ contains everything of my book, and more.
Well written, updated constantly, challenging the brain...

  • Sign in to reply
  • Cancel

Top Replies

  • Jan Cumps
    Jan Cumps 8 months ago +1
    I finished the book early 2023. Since then I redid a few chapters, that became more useful when most of the C++23 standard was supported by the GCC embedded toolchains. 3 takeaways: I studied each…
  • Jan Cumps
    Jan Cumps 8 months ago

    I finished the book early 2023. Since then I redid a few chapters, that became more useful when most of the C++23 standard was supported by the GCC embedded toolchains.

    3 takeaways:

    • I studied each time I was in the US. Chicago, IL and Covington, KY. Sometimes, a location helps to focus on a goal.
    • C++ and the STL are fit for embedded systems. 
    • It's worth learning Modern C++. for object-oriented, structured, functional, generic, or generative style development. There is a wealth of solutions for our common problems. Wheels were invented.
    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube