C++23: Removing CR from CRTP(Curiously Recurring Template Pattern)
modernescpp.com
modernescpp.com
The other limitation of this is that each calling site must specify the type it wants to use. This is more generic because the base type is no longer tied to a single type. However, it could lead to bad states if callers mix calls with multiple types on the same base instance which isn't expecting it.