From 8526cc7d45adce9c352897acfd0366211e4f1d5e Mon Sep 17 00:00:00 2001 From: martin Date: Sun, 17 Mar 2024 12:49:55 +0100 Subject: [PATCH] Replace deprecated std::is_pod (#6717) * Replace deprecated std::is_pod --- include/util/coordinate.hpp | 20 ++++++++++++++------ include/util/fingerprint.hpp | 3 ++- include/util/typedefs.hpp | 6 ++++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/include/util/coordinate.hpp b/include/util/coordinate.hpp index 578b43ff2..e19a1bc5e 100644 --- a/include/util/coordinate.hpp +++ b/include/util/coordinate.hpp @@ -72,12 +72,20 @@ using FloatLongitude = Alias; // range checks on these (toFixed/toFloat, etc) using UnsafeFloatLatitude = Alias; using UnsafeFloatLongitude = Alias; -static_assert(std::is_pod(), "FixedLatitude is not a valid alias"); -static_assert(std::is_pod(), "FixedLongitude is not a valid alias"); -static_assert(std::is_pod(), "FloatLatitude is not a valid alias"); -static_assert(std::is_pod(), "FloatLongitude is not a valid alias"); -static_assert(std::is_pod(), "UnsafeFloatLatitude is not a valid alias"); -static_assert(std::is_pod(), "UnsafeFloatLongitude is not a valid alias"); +static_assert(std::is_standard_layout() && std::is_trivial(), + "FixedLatitude is not a valid alias"); +static_assert(std::is_standard_layout() && std::is_trivial(), + "FixedLongitude is not a valid alias"); +static_assert(std::is_standard_layout() && std::is_trivial(), + "FloatLatitude is not a valid alias"); +static_assert(std::is_standard_layout() && std::is_trivial(), + "FloatLongitude is not a valid alias"); +static_assert(std::is_standard_layout() && + std::is_trivial(), + "UnsafeFloatLatitude is not a valid alias"); +static_assert(std::is_standard_layout() && + std::is_trivial(), + "UnsafeFloatLongitude is not a valid alias"); /** * Converts a typed latitude from floating to fixed representation. diff --git a/include/util/fingerprint.hpp b/include/util/fingerprint.hpp index 7e9d0c825..d28264a53 100644 --- a/include/util/fingerprint.hpp +++ b/include/util/fingerprint.hpp @@ -33,7 +33,8 @@ struct FingerPrint static_assert(sizeof(FingerPrint) == 8, "FingerPrint has unexpected size"); static_assert(std::is_trivial::value, "FingerPrint needs to be trivial."); -static_assert(std::is_pod::value, "FingerPrint needs to be a POD."); +static_assert(std::is_standard_layout::value, + "FingerPrint needs have a standard layout."); } // namespace osrm::util #endif /* FingerPrint_H */ diff --git a/include/util/typedefs.hpp b/include/util/typedefs.hpp index 46b2807f3..a5c4af2d3 100644 --- a/include/util/typedefs.hpp +++ b/include/util/typedefs.hpp @@ -71,10 +71,12 @@ struct turn_penalty using OSMNodeID = osrm::Alias; // clang-tidy fires `bugprone-throw-keyword-missing` here for unknown reason // NOLINTNEXTLINE(bugprone-throw-keyword-missing) -static_assert(std::is_pod(), "OSMNodeID is not a valid alias"); +static_assert(std::is_standard_layout() && std::is_trivial(), + "OSMNodeID is not a valid alias"); using OSMWayID = osrm::Alias; // NOLINTNEXTLINE(bugprone-throw-keyword-missing) -static_assert(std::is_pod(), "OSMWayID is not a valid alias"); +static_assert(std::is_standard_layout() && std::is_trivial(), + "OSMWayID is not a valid alias"); using DuplicatedNodeID = std::uint64_t; using RestrictionID = std::uint64_t;