ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1015378 Топик полностью
йцyкeн (02.07.2020 14:57, просмотров: 539) ответил йцyкeн на Параметром шаблона является класс как тип данных, параметром функции - объект (экземпляр этого класса). Вот пример. Всё работает, как ожидается, но для этого в классы A и B пришлось ввести флаг is_super. Мне бы хотелось этого избежать.
Гадское форматирование съело продолжение: 
void foo(T& a_or_b)
{
 if constexpr (T::is_super)
  a_or_b.super_f();
 else
  a_or_b.f();
}

void bar()
{
 A a;
 B b;
 foo(a);	// calls a.f()
 foo(b);	// calls b.super_f()
}