proconlib

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub anqooqie/proconlib

:heavy_check_mark: std::make_unsigned extended for tools::int128_t and tools::uint128_t (tools/make_unsigned.hpp)

template <typename T>
struct make_unsigned {
  using type = ...;
};

template <typename T>
using make_unsigned_t = typename make_unsigned<T>::type;

tools::make_unsigned is guaranteed to satisfy the following properties.

When using libstdc++ with -std=c++... option, std::make_unsigned_t<tools::int128_t> cannot be compiled, but with tools::make_unsigned, it can be compiled.

Constraints

Time Complexity

License

Author

Required by

Verified with

Code

#ifndef TOOLS_MAKE_UNSIGNED_HPP
#define TOOLS_MAKE_UNSIGNED_HPP

#include <type_traits>

namespace tools {
  template <typename T>
  struct make_unsigned : ::std::make_unsigned<T> {};

  template <typename T>
  using make_unsigned_t = typename ::tools::make_unsigned<T>::type;
}

#endif
#line 1 "tools/make_unsigned.hpp"



#include <type_traits>

namespace tools {
  template <typename T>
  struct make_unsigned : ::std::make_unsigned<T> {};

  template <typename T>
  using make_unsigned_t = typename ::tools::make_unsigned<T>::type;
}


Back to top page