Program Listing for File typedefs.hpp

Return to documentation for file (/tmp/ws/src/proxsuite/include/proxsuite/linalg/veg/internal/typedefs.hpp)

#ifndef VEG_TYPEDEFS_HPP_2UKLEQTSS
#define VEG_TYPEDEFS_HPP_2UKLEQTSS

#include <cstdint>
#include <cstddef>

namespace proxsuite {
namespace linalg {
namespace veg {
namespace _detail {
namespace _meta {
template<typename T>
struct make_signed;
template<>
struct make_signed<unsigned char>
{
  using Type = signed char;
};
template<>
struct make_signed<unsigned short>
{
  using Type = signed short;
};
template<>
struct make_signed<unsigned int>
{
  using Type = signed int;
};
template<>
struct make_signed<unsigned long>
{
  using Type = signed long;
};
template<>
struct make_signed<unsigned long long>
{
  using Type = signed long long;
};
} // namespace _meta
} // namespace _detail

using usize = decltype(sizeof(0));
using isize = _detail::_meta::make_signed<usize>::Type;

using i64 = std::int64_t;
using u64 = std::uint64_t;
using i32 = std::int32_t;
using u32 = std::uint32_t;
using i16 = std::int16_t;
using u16 = std::uint16_t;
using u8 = std::uint8_t;
using i8 = std::int8_t;

} // namespace veg
} // namespace linalg
} // namespace proxsuite

#endif /* end of include guard VEG_TYPEDEFS_HPP_2UKLEQTSS */