Model-View-Controller -- Rainer Grimm
The Model-View-Controller (MVC) is one of the classic architectural patterns from the book "Pattern-Oriented Software Architecture, Volume 1". It addresses interactive applications with a flexible human-machine interface.
Model-View-Controller
by Rainer Grimm
From the article:
The MVC divides the program logic of a user interface into separate components model, view, and controller. The model manages the data and rules of the application. The view represents the data, and the controller interacts with the user.
Purpose
- User interfaces need to be changed frequently
- Different user interfaces must be supported
- The data model is stable
Solution
- The application is divided into the components Model (data model), View (output components), and Controller (input components)
- Multiple output components can use the same data model

Optimizing compilers seek try to push as much of the computation as possible at compile time.
In my previous post I showed how to compile {fmt} as a C++20 module with clang. Although taking only two commands, ideally it’s not something you should be doing manually. So in this post, I’ll talk about module support in CMake, everyone’s favorite not a build system.
This post is an updated version of an article from five years ago, now that everything Sy talked about is in the standard and implemented in Visual Studio.