Как правильно использовать CRTP в реальном C/C++ проекте?
Что хотят услышать интервьюеры:
Практический подход: применять «CRTP» нужно с учетом ownership, lifetime, error handling, стоимости операций и требований платформы.
- Сначала определить, кто владеет ресурсом.
- Проверить границы буферов, исключения и cleanup.
- Зафиксировать поведение тестом или диагностикой.
Ответ:
Хороший ответ: кандидат объясняет не только синтаксис, но и последствия для надежности и поддержки.
template<class D> struct Base {
void f(){
static_cast<D*>(this)->impl();
}
}
;