>>665
むしろアップ/ダウンだけでは状況を充分に表せないんじゃないかな。
ポインタを経由せずに値を直接キャストすることもありうるし
参照の場合かもしれない。

class foo {};
struct bar : public foo {};

int main() {
auto a = bar();
// bar から foo へのアップキャストってどれのこと?
auto b = static_cast<foo>(a);
auto c = static_cast<foo *>(&a);
auto &d = static_cast<foo &>(a);
}