From f608e653ca3cc1e410625ebaccf276f9f447e1a5 Mon Sep 17 00:00:00 2001 From: Bart Date: Tue, 1 Apr 2025 11:21:59 -0400 Subject: [PATCH] Fix undefined uint128_t type on Windows non-unity builds (#5377) As part of import optimization, a transitive include had been removed that defined `BOOST_COMP_MSVC` on Windows. In unity builds, this definition was pulled in, but in non-unity builds it was not - causing a compilation error. An inspection of the Boost code revealed that we can just gate the statements by `_MS_VER` instead. A `#pragma message` is added to verify that the statement is only printed on Windows builds. --- src/libxrpl/basics/Number.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libxrpl/basics/Number.cpp b/src/libxrpl/basics/Number.cpp index 1515177ab9..186a363b41 100644 --- a/src/libxrpl/basics/Number.cpp +++ b/src/libxrpl/basics/Number.cpp @@ -31,12 +31,13 @@ #include #include -#ifdef BOOST_COMP_MSVC +#ifdef _MSC_VER +#pragma message("Using boost::multiprecision::uint128_t") #include using uint128_t = boost::multiprecision::uint128_t; -#else // !defined(_MSVC_LANG) +#else // !defined(_MSC_VER) using uint128_t = __uint128_t; -#endif // !defined(_MSVC_LANG) +#endif // !defined(_MSC_VER) namespace ripple {