Базовый класс 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
Мобильная версия