proconlib

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

View the Project on GitHub anqooqie/proconlib

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

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

template <typename T>
using make_signed_t = typename make_signed<T>::type;

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

When using libstdc++ with -std=c++... option, std::make_signed_t<tools::uint128_t> cannot be compiled, but with tools::make_signed, it can be compiled.

Constraints

Time Complexity

License

Author

Required by

Verified with

Code

#ifndef TOOLS_MAKE_SIGNED_HPP
#define TOOLS_MAKE_SIGNED_HPP

#include <type_traits>

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

  template <typename T>
  using make_signed_t = typename ::tools::make_signed<T>::type;
}

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



#include <type_traits>

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

  template <typename T>
  using make_signed_t = typename ::tools::make_signed<T>::type;
}


Back to top page