Шаблонный вычет в dynamic_cast
-
23-09-2019 - |
Вопрос
У меня есть класс, который определяется как следующее:
template <class WidgetType>
class CometWidget : public WidgetType;
Внутри функции я делаю это:
dynamic_cast<CometWidget *>(iter2->second.second)->changesCommited_();
и это разрешает CometWidget
введите, подчиняется и запустите правильно.
Код работает внутри CometWidget
учебный класс.
Как это происходит?
Почему это так? Должен ли он даже собрать?
Решение
Вы можете добавить панель инструментов атрибута= «Нет» в элементе просмотра
<View BaseViewID="1" ... ToolbarTemplate="None" ...
. Другие советы
Действительно очень интересно. Мне кажется интересной ошибкой компилятора.
Можно вывести правильный аргумент шаблона CometWidget <> - точно так же, как вы можете вывести параметры шаблона функции из списка аргументов. Если бы это был статический актерский состав, это было бы менее удивительно.
С динамическим составом, между источником и целевым типом мало что будет общего. Таким образом, такое «угадание» могло произойти, но тогда это не является законным.
Что это за компилятор?