- C++14/C++1z 20
570 :デフォルトの名無しさん[sage]:2015/06/09(火) 20:04:24.02 ID:wqkyS0f8 - static_castには更に、dynamic_castならチェックされるダウンキャストをノーチェックで通す機能もある
確かに更なる小分けがされてもいい dynamic_castで「オーバーフローの恐れがある変換」もランタイムチェック有りでできてもいいような気はするけど エラーをどうやって返すかは困るな dynamic_cast (std::yesthrow) <char> (300) なんてな
|
- C++14/C++1z 20
572 :デフォルトの名無しさん[sage]:2015/06/09(火) 20:46:28.56 ID:wqkyS0f8 - >>571
template<typename to_t, typename from_t> auto numeric_cast(from_t v) -> to_t { auto const r = static_cast<to_t>(v); if ((from_t)r == v) throw std::overflow_error; return r; } こんなんでいいのか?
|
- C++14/C++1z 20
573 :デフォルトの名無しさん[sage]:2015/06/09(火) 20:49:41.71 ID:wqkyS0f8 - 訂正、!= だった
|