std::static_pointer_cast, std::dynamic_pointer_cast, std::const_pointer_cast, std::reinterpret_pointer_cast - cppreference.com
https://en.cppreference.com/w/cpp/memory/shared_ptr/pointer_cast
あとは std::shared_ptr の {static,dynamic,const,reinterpret}_pointer_cast が文法レベルの {static,dynamic,const,reinterpret}_cast と見た目同じになるのもすげえ “発明” だなと思った
たぶんどちらかというと逆で、キャストの構文がうまいこと template function に合わせて作られたというのが実情なんだろうけど……