static constexpr decltype()

in src/libraries/cast/include/m/cast/try_cast.h [119:133]


        static constexpr decltype(auto)
        do_cast(FromType v)
        {
            if (v < 0)
                throw std::overflow_error("v");

            if constexpr (std::numeric_limits<ToType>::digits <
                          std::numeric_limits<FromType>::digits)
            {
                if (v > (std::numeric_limits<ToType>::max)())
                    throw std::overflow_error("v");
            }

            return static_cast<ToType>(v);
        }