Базовый класс 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
Вызов базовой функции из производного деструктора не удается (CRTP, классы шаблонов) [дублировать] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему доступ к статическому члену производного типа в CRTP работает с g++, но не с cl.exe?
Anonymous » » в форуме C++ - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему доступ к статическому члену производного типа в CRTP работает с g++, но не с cl.exe?
Anonymous » » в форуме C++ - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему доступ к статическому члену производного типа в CRTP работает с g++, но не с cl.exe?
Anonymous » » в форуме C++ - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-