Моя проблема в том, что в моем классе "Widget" у меня есть следующее объявление:
MouseEvent* X;
В функции-члене я инициализирую указатель с помощью адреса обычным способом:
X = new MouseEvent;
Хорошо, эта последняя строка останавливает компилятор на:
ошибка C2166: l-значение указывает постоянный объект
Хорошо, MouseEvent объявлен как typedef для упрощения вещей:
typedef Event__2<void, Widget&, const MouseEventArgs&> MouseEvent;
И Event__2, как вы можете себе представить, выглядит так: (показана базовая структура):
template <typename return_type, typename arg1_T, typename arg2_T>
class Event__2
{
...
};
Я не знаю, где класс Event__2 получает квалификатор const. Любые советы?
Спасибо.