// // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2024 // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #pragma once #include "td/utils/port/platform.h" #include #include namespace td { #if !TD_WINDOWS using size_t = std::size_t; #endif using int8 = std::int8_t; using int16 = std::int16_t; using uint16 = std::uint16_t; using int32 = std::int32_t; using uint32 = std::uint32_t; using int64 = std::int64_t; using uint64 = std::uint64_t; static_assert(sizeof(std::uint8_t) == sizeof(unsigned char), "Unsigned char expected to be 8-bit"); using uint8 = unsigned char; #if TD_MSVC #pragma warning(push) #pragma warning(disable : 4309) #endif static_assert(static_cast(128) == -128 || static_cast(128) == 128, "Unexpected cast to char implementation-defined behaviour"); static_assert(static_cast(256) == 0, "Unexpected cast to char implementation-defined behaviour"); static_assert(static_cast(-256) == 0, "Unexpected cast to char implementation-defined behaviour"); #if TD_MSVC #pragma warning(pop) #endif } // namespace td