1
Что не так с этим кодом?параметр шаблона dynamic_pointer_cast
class Event;
class EventPtr : public std::shared_ptr<Event>
{
public:
template<typename T>
std::shared_ptr<T> castTo() {
return std::dynamic_pointer_cast<T>(this);
}
};
я получаю следующее Ошибка компиляции: нет функции соответствия для вызова «dynamic_pointer_cast»
Ниже не является использование:
void SomeClass::onEvent(EventPtr event)
{
auto e = event.castTo<SomeEvent>();
// using casted event
}
С одной стороны, 'dynamic_pointer_cast' принимает ссылку не указатель, но вы уверены, что компилируете с поддержкой C++ 11? – user657267
Также вы включили ''? –
anderas
Да, это C++ 11, и включен –
Peregrin