From c43869767f36f006e1f4e8e933244714961ab941 Mon Sep 17 00:00:00 2001 From: Nicolas Morales Date: Thu, 22 Sep 2022 17:09:00 -0700 Subject: [PATCH 1/2] #1974: replace `std::is_pod` with `std::is_standard_layout && std::is_trivial` --- src/vt/messaging/envelope/envelope_base.h | 3 +-- src/vt/messaging/envelope/envelope_extended.h | 12 ++++++------ src/vt/messaging/envelope/payload_envelope.h | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/vt/messaging/envelope/envelope_base.h b/src/vt/messaging/envelope/envelope_base.h index 2a33884c07..1f0660a2b0 100644 --- a/src/vt/messaging/envelope/envelope_base.h +++ b/src/vt/messaging/envelope/envelope_base.h @@ -113,8 +113,7 @@ namespace vt { using Envelope = messaging::ActiveEnvelope; -static_assert(std::is_pod(), "Envelope must be POD"); -static_assert(std::is_trivially_destructible(), "Envelope must be trivially destructible"); +static_assert(std::is_standard_layout::value && std::is_trivial::value, "Envelope must be standard layout and trivial"); } /* end namespace vt */ diff --git a/src/vt/messaging/envelope/envelope_extended.h b/src/vt/messaging/envelope/envelope_extended.h index 37277b9107..57a4620a1e 100644 --- a/src/vt/messaging/envelope/envelope_extended.h +++ b/src/vt/messaging/envelope/envelope_extended.h @@ -104,19 +104,19 @@ using EpochEnvelope = messaging::EpochActiveEnvelope; using TagEnvelope = messaging::TagActiveEnvelope; using EpochTagEnvelope = messaging::EpochTagActiveEnvelope; -static_assert(std::is_pod(), "EpochEnvelope must be POD"); -static_assert(std::is_pod(), "TagEnvelope must be POD"); -static_assert(std::is_pod(), "EpochTagEnvelope must be POD"); +static_assert(std::is_standard_layout::value, "EpochEnvelope must be standard layout"); +static_assert(std::is_standard_layout::value, "TagEnvelope must be standard layout"); +static_assert(std::is_standard_layout::value, "EpochTagEnvelope must be standard layout"); static_assert( - std::is_trivially_destructible(), + std::is_trivial::value, "EpochEnvelope must be trivial" ); static_assert( - std::is_trivially_destructible(), + std::is_trivial::value, "TagEnvelope must be trivial" ); static_assert( - std::is_trivially_destructible(), + std::is_trivial::value, "EpochTagEnvelope must be trivial" ); diff --git a/src/vt/messaging/envelope/payload_envelope.h b/src/vt/messaging/envelope/payload_envelope.h index 09ec6e47a8..fc2b10b11b 100644 --- a/src/vt/messaging/envelope/payload_envelope.h +++ b/src/vt/messaging/envelope/payload_envelope.h @@ -91,7 +91,7 @@ inline void envelopeInitEmpty(PutShortEnvelope& env) { env.put_data_tag_ = no_tag; } -static_assert(std::is_pod(), "PutShortEnvelope must be POD"); +static_assert(std::is_standard_layout::value && std::is_trivial::value, "PutShortEnvelope must be standard layout and trivial"); /** * \brief Get the put pointer From 7ed585e8b456693d3c837ecf8b3606d9126ae266 Mon Sep 17 00:00:00 2001 From: Nicolas Morales Date: Thu, 22 Sep 2022 17:11:03 -0700 Subject: [PATCH 2/2] #1974: remove `std::iterator` base class --- src/vt/termination/interval/integral_set.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/vt/termination/interval/integral_set.h b/src/vt/termination/interval/integral_set.h index 0b18627479..e04e72e040 100644 --- a/src/vt/termination/interval/integral_set.h +++ b/src/vt/termination/interval/integral_set.h @@ -378,9 +378,7 @@ struct IntegralSetBase { // using reference = DomainT&; template - struct IntervalSetIter : - std::iterator - { + struct IntervalSetIter { using Iter = IntervalSetIter; using iterator_category = std::bidirectional_iterator_tag; using difference_type = DomainT;