演算子の名前が気に入らず、セマンティクスを完全に保持しながらstatic_cast
、別の名前の関数にラップしたいとします。fancy_static_cast
どうすればいいですか?より具体的にはstatic_cast
、値または参照によって引数を受け入れますか? それとも引数式に依存するのでしょうか?いくつかのオーバーロードを提供する必要がありますか、それともこのようなものでうまくいきますか?
template <typename To, typename From>
To fancy_static_cast(From&& from)
{
return static_cast<To>(std::forward<From>(from));
}