Я изучаю новую функцию выпуска, представленную в C ++ 23, и я пытаюсь понять, как эффективно объединить ее с любопытно повторяющимся шаблоном шаблона (CRTP), чтобы реализовать полиморфное поведение, не полагаясь на традиционные виртуальные функции. Полуполиморфный путь, и все еще получить преимущества статического полиморфизма и, возможно, уменьшить косвенный и динамический распределение.
Код: Выделить всё
#include
#include
template
struct Base {
void process(this Derived& self) {
self.impl(); // supposed to call derived's impl()
}
};
struct DerivedA : Base {
void impl() {
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79563651/how-to-use-c23-deducing-this-with-crtp-for-managing-polymorphic-behavior-in-co[/url]