Skip to content

Commit 0ae940c

Browse files
authored
Replace std::is_trivial (#7248)
* Replace std::is_trivial std::is_trivial is deprecated in c++26 therefore replacing it with std::is_trivially_default_constructible && std::is_trivially_copyable * Fix formatting in changelog
1 parent 8fb25ea commit 0ae940c

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Unreleased
22
- Changes from 6.0.0
33
- Misc:
4+
- CHANGED: Replace std::is_trivial with std::is_trivially_default_constructible && std::is_trivially_copyable [#7245](https://github.com/Project-OSRM/osrm-backend/issues/7245)
45
- ADDED: Add husky pre-commit hook for compiling and linting staged JS files [#7228](https://github.com/Project-OSRM/osrm-backend/issues/7228)
56
- CHANGED: Standardize linting configuration with ESM-specific rules [#7229](https://github.com/Project-OSRM/osrm-backend/issues/7229)
67
- CHANGED: Convert scripts from CommonJS to modern ESM format [#7230](https://github.com/Project-OSRM/osrm-backend/pull/7230)

include/util/coordinate.hpp

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,19 +68,29 @@ using FloatLongitude = Alias<double, tag::longitude>;
6868
// range checks on these (toFixed/toFloat, etc)
6969
using UnsafeFloatLatitude = Alias<double, tag::unsafelatitude>;
7070
using UnsafeFloatLongitude = Alias<double, tag::unsafelongitude>;
71-
static_assert(std::is_standard_layout<FixedLatitude>() && std::is_trivial<FixedLatitude>(),
71+
static_assert(std::is_standard_layout<FixedLatitude>() &&
72+
std::is_trivially_default_constructible<FixedLatitude>() &&
73+
std::is_trivially_copyable<FixedLatitude>(),
7274
"FixedLatitude is not a valid alias");
73-
static_assert(std::is_standard_layout<FixedLongitude>() && std::is_trivial<FixedLongitude>(),
75+
static_assert(std::is_standard_layout<FixedLongitude>() &&
76+
std::is_trivially_default_constructible<FixedLongitude>() &&
77+
std::is_trivially_copyable<FixedLongitude>(),
7478
"FixedLongitude is not a valid alias");
75-
static_assert(std::is_standard_layout<FloatLatitude>() && std::is_trivial<FloatLatitude>(),
79+
static_assert(std::is_standard_layout<FloatLatitude>() &&
80+
std::is_trivially_default_constructible<FloatLatitude>() &&
81+
std::is_trivially_copyable<FloatLatitude>(),
7682
"FloatLatitude is not a valid alias");
77-
static_assert(std::is_standard_layout<FloatLongitude>() && std::is_trivial<FloatLongitude>(),
83+
static_assert(std::is_standard_layout<FloatLongitude>() &&
84+
std::is_trivially_default_constructible<FloatLongitude>() &&
85+
std::is_trivially_copyable<FloatLongitude>(),
7886
"FloatLongitude is not a valid alias");
7987
static_assert(std::is_standard_layout<UnsafeFloatLatitude>() &&
80-
std::is_trivial<UnsafeFloatLatitude>(),
88+
std::is_trivially_default_constructible<UnsafeFloatLatitude>() &&
89+
std::is_trivially_copyable<UnsafeFloatLatitude>(),
8190
"UnsafeFloatLatitude is not a valid alias");
8291
static_assert(std::is_standard_layout<UnsafeFloatLongitude>() &&
83-
std::is_trivial<UnsafeFloatLongitude>(),
92+
std::is_trivially_default_constructible<UnsafeFloatLongitude>() &&
93+
std::is_trivially_copyable<UnsafeFloatLongitude>(),
8494
"UnsafeFloatLongitude is not a valid alias");
8595

8696
/**

include/util/typedefs.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,15 @@ struct turn_penalty
7171
using OSMNodeID = osrm::Alias<std::uint64_t, tag::osm_node_id>;
7272
// clang-tidy fires `bugprone-throw-keyword-missing` here for unknown reason
7373
// NOLINTNEXTLINE(bugprone-throw-keyword-missing)
74-
static_assert(std::is_standard_layout<OSMNodeID>() && std::is_trivial<OSMNodeID>(),
74+
static_assert(std::is_standard_layout<OSMNodeID>() &&
75+
std::is_trivially_default_constructible<OSMNodeID>() &&
76+
std::is_trivially_copyable<OSMNodeID>(),
7577
"OSMNodeID is not a valid alias");
7678
using OSMWayID = osrm::Alias<std::uint64_t, tag::osm_way_id>;
7779
// NOLINTNEXTLINE(bugprone-throw-keyword-missing)
78-
static_assert(std::is_standard_layout<OSMWayID>() && std::is_trivial<OSMWayID>(),
80+
static_assert(std::is_standard_layout<OSMWayID>() &&
81+
std::is_trivially_default_constructible<OSMWayID>() &&
82+
std::is_trivially_copyable<OSMWayID>(),
7983
"OSMWayID is not a valid alias");
8084

8185
using DuplicatedNodeID = std::uint64_t;

0 commit comments

Comments
 (0)