170 похожих чатов

Как можно реализовать функцию принимающую по шаблону класс T, наследованный

от определённого класса?

24 ответов

13 просмотров

с метапрограммированием знаком?

Nikita Krutko
Возможно

Если достаточно чтобы функция выдавала ошибку при вызове с классом не отнаследованным от твоего, то можно так template<class T> void foo(T t){ static_assert(std::is_base_of_v<BaseClass,T>, "Not base of BaseClass") }

Dmitriy [Отпуск]
Или через enable_if

толку от сфинае если функция одна

В си++ тебе такое не нужно

Nikita-Krutko Автор вопроса
Егор (Дима)
Если достаточно чтобы функция выдавала ошибку при ...

Тут скорее задача использовать как интерфейс базовый класс, чтобы получить доступ к методам базового класса

Nikita Krutko
Тут скорее задача использовать как интерфейс базов...

А поч просто не сделать функцию, принимающую указатель на базовый класс? Она сможет принимать наследников

Nikita-Krutko Автор вопроса
Daria Koroleva
А поч просто не сделать функцию, принимающую указа...

Там возвращаемый тип получается тоже базовым

Nikita Krutko
Там возвращаемый тип получается тоже базовым

Сделать обертку с шаблонами? (хз, насколько это плохое решение)

Зачем шаблон?

Nikita-Krutko Автор вопроса
Danya🔥
Зачем шаблон?

Я предположил, что через него это делается, может я в чём-то в плюсах ошибаюсь...

Nikita-Krutko Автор вопроса
Danya🔥
void foo(const Base& base);

Почему-то в подобном состоянии сейчас не находит метод

Nikita-Krutko Автор вопроса
Danya🔥
Ну я не экстрасенс

Да, сейчас опишу ситуацию

Danya🔥
Ну я не экстрасенс

Чорд, как жаль, что ты ещё не экстрасенс...

Ilya Zviagin
Чорд, как жаль, что ты ещё не экстрасенс...

Могу экстрасенсировать только с undefined reference ошибкой До большего не дорос

В общем-то пока никак, про это всё как раз концепты, которые будут в 20ом стандарте (будут ли?) Но это И НЕ НУЖНО ПРОВЕРЯТЬ по подходу к шаблонному коду.

Danya🔥
Илья, с начала времён есть сфинае

Ну да, но ну его... Не обязательно оно совсем.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта