probably intended, but I thought I'd mention it, cpplint complains about dynamic_cast usage:

Do not use dynamic_cast<>.  If you need to cast within a class hierarchy, use static_cast<> to upcast.  Google doesn't support RTTI.