2018-08-05から1日間の記事一覧

C++で安全に絶対値を求める

C++で安全に絶対値を求める方法について、調べても出てこないので書いておきます。 安全に、というのは「オーバーフローなどの未定義動作を起こさず」という意味です。 #include <type_traits> #include <cstdint> template<class T, class U = std::make_unsigned_t<T>> U SafeAbs( T x ) { return x < 0 ? -static_cast<uintmax_t>(x) : </uintmax_t></class></cstdint></type_traits>…