]> code.bitgloo.com Git - clyne/constexpr-to-string.git/commitdiff
Change base from unsigned to signed 1/head
authorclyne <clyne@bitgloo.com>
Sat, 27 Jun 2020 23:08:48 +0000 (19:08 -0400)
committerGitHub <noreply@github.com>
Sat, 27 Jun 2020 23:08:48 +0000 (19:08 -0400)
to_string.hpp

index bf724cd4ca94cb5bffb861fe70a10fb17e2e4597..e7eef932f91466a064948f60048d7433c3345d31 100644 (file)
@@ -15,7 +15,7 @@
  * @tparam N Number to convert
  * @tparam base Desired base, can be from 2 to 36
  */
-template<auto N, unsigned int base, typename char_type,
+template<auto N, int base, typename char_type,
     std::enable_if_t<std::is_integral_v<decltype(N)>, int> = 0,
     std::enable_if_t<(base > 1 && base < 37), int> = 0>
 class to_string_t {
@@ -35,7 +35,7 @@ class to_string_t {
         auto ptr = end();
         *--ptr = '\0';
         if (N != 0) {
-            for (auto n = N < 0 ? -N : N; n; n /= base)
+            for (auto n = N; n; n /= base)
                 *--ptr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[(N < 0 ? -1 : 1) * (n % base)];
             if (N < 0)
                 *--ptr = '-';