Вызов базовой функции из производного деструктора не удается (CRTP, классы шаблонов) [дублировать]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Вызов базовой функции из производного деструктора не удается (CRTP, классы шаблонов) [дублировать]

Сообщение Anonymous »

Базовый класс CRTP A с интерфейсной функцией a () .
a Class B , который реализует a () через a_impl () . Но b также шаблон. В Destructor B я пытаюсь вызвать a () - и это не удается. A '< /p>
gcc: 13: 18: ошибка: нет никаких аргументов для «а», которые зависят от параметра шаблона, поэтому объявление «a» должно быть доступно [-wtemplate- Body]
msc сдает успешно
Я потерян. z/otx5wzco5
#include

template
class A {
public:
void a(void) {return static_cast(this)->a_impl();}
};

template
class B : public A
{
public:
~B() { a(); }

void a_impl(void) { std::cerr

Подробнее здесь: https://stackoverflow.com/questions/794 ... mplate-cla
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»