change dynamic_cast to std::dynamic_pointer_cast (caused by changing copy function returning shared_ptr)
change dynamic_cast to std::dynamic_pointer_cast (caused by changing copy function returning shared_ptr)

MDE4CPP/MDE4CPP,MDE4CPP/MDE4CPP,MDE4CPP/MDE4CPP