Rethinking C++: Architecture, Concepts, and Responsibility

https://news.ycombinator.com/rss Hits: 10
Summary

Rethinking C++: Architecture, Concepts, and Responsibility Why C++Builder 13 is more than just a version bump – and why we must begin to truly understand C++. An article about C++Builder – and yet about much more With the release of C++Builder 13 and support for the current C++20 and C++23 standards a few weeks ago, and after my subsequent extensive tests, a concept for a new library emerged—together with the idea for a book. This text is a first summary. In recent years, I repeatedly met C++ developers who became uneasy when looking at modern C++, and I often heard that this was not C++. Of course, modern C++ looks different, relies much more on metaprogramming, and although it evolved step by step, it nonetheless made a quantum leap. Before diving into the topic, I want to state something general. At first glance, this article seems to refer to C++Builder, a specific development environment. In fact, however, it concerns C++ as a whole: every compiler, every platform, every C++ library. Even if I discuss specific C++Builder libraries here, such as VCL, FMX or FireDAC, the same applies without restriction to any other library, for example Qt. Whether database, UI, or business framework: everywhere it is about the same principle—understanding modern C++ as a language of thought, not of imitation. Thus, the requirements for the respective frameworks are defined via concepts, a new kind of “contract” that our compilers verify. They enable direct and simple implementations of interfaces without runtime overhead, already at compile time. Simplified—without the helper concepts—such a concept for any form of table views (in VCL, for example, TListView, in FMX a TStringGrid, in Qt a QTableWidget) looks as follows and must then be implemented for the respective components / widgets. In modern C++, concepts play an important role; some even view them as a new paradigm: concept‑based development. template <class backend_ty>concept table_type = check_get_all_opt<backend_ty, de...

First seen: 2025-11-25 08:25

Last seen: 2025-11-25 17:26