Use std::bit_cast (#7567)

Backport #7492

Co-authored-by: Tyler Veness <calcmogul@gmail.com>
This commit is contained in:
Ryan Blue
2024-12-22 16:34:16 -05:00
committed by GitHub
parent d631fa8e4b
commit 0c99073b94
7 changed files with 33 additions and 34 deletions

View File

@@ -377,7 +377,7 @@ void DataLog::AppendFloat(int entry, float value, int64_t timestamp) {
if constexpr (std::endian::native == std::endian::little) {
std::memcpy(buf, &value, 4);
} else {
wpi::support::endian::write32le(buf, wpi::bit_cast<uint32_t>(value));
wpi::support::endian::write32le(buf, std::bit_cast<uint32_t>(value));
}
}
@@ -393,7 +393,7 @@ void DataLog::AppendDouble(int entry, double value, int64_t timestamp) {
if constexpr (std::endian::native == std::endian::little) {
std::memcpy(buf, &value, 8);
} else {
wpi::support::endian::write64le(buf, wpi::bit_cast<uint64_t>(value));
wpi::support::endian::write64le(buf, std::bit_cast<uint64_t>(value));
}
}
@@ -508,14 +508,14 @@ void DataLog::AppendFloatArray(int entry, std::span<const float> arr,
while ((arr.size() * 4) > kBlockSize) {
buf = Reserve(kBlockSize);
for (auto val : arr.subspan(0, kBlockSize / 4)) {
wpi::support::endian::write32le(buf, wpi::bit_cast<uint32_t>(val));
wpi::support::endian::write32le(buf, std::bit_cast<uint32_t>(val));
buf += 4;
}
arr = arr.subspan(kBlockSize / 4);
}
buf = Reserve(arr.size() * 4);
for (auto val : arr) {
wpi::support::endian::write32le(buf, wpi::bit_cast<uint32_t>(val));
wpi::support::endian::write32le(buf, std::bit_cast<uint32_t>(val));
buf += 4;
}
}
@@ -540,14 +540,14 @@ void DataLog::AppendDoubleArray(int entry, std::span<const double> arr,
while ((arr.size() * 8) > kBlockSize) {
buf = Reserve(kBlockSize);
for (auto val : arr.subspan(0, kBlockSize / 8)) {
wpi::support::endian::write64le(buf, wpi::bit_cast<uint64_t>(val));
wpi::support::endian::write64le(buf, std::bit_cast<uint64_t>(val));
buf += 8;
}
arr = arr.subspan(kBlockSize / 8);
}
buf = Reserve(arr.size() * 8);
for (auto val : arr) {
wpi::support::endian::write64le(buf, wpi::bit_cast<uint64_t>(val));
wpi::support::endian::write64le(buf, std::bit_cast<uint64_t>(val));
buf += 8;
}
}

View File

@@ -4,11 +4,11 @@
#include "wpi/DataLogReader.h"
#include <bit>
#include <utility>
#include "wpi/DataLog.h"
#include "wpi/Endian.h"
#include "wpi/MathExtras.h"
using namespace wpi::log;
@@ -97,7 +97,7 @@ bool DataLogRecord::GetFloat(float* value) const {
if (m_data.size() != 4) {
return false;
}
*value = wpi::bit_cast<float>(wpi::support::endian::read32le(m_data.data()));
*value = std::bit_cast<float>(wpi::support::endian::read32le(m_data.data()));
return true;
}
@@ -105,7 +105,7 @@ bool DataLogRecord::GetDouble(double* value) const {
if (m_data.size() != 8) {
return false;
}
*value = wpi::bit_cast<double>(wpi::support::endian::read64le(m_data.data()));
*value = std::bit_cast<double>(wpi::support::endian::read64le(m_data.data()));
return true;
}
@@ -143,7 +143,7 @@ bool DataLogRecord::GetFloatArray(std::vector<float>* arr) const {
arr->reserve(m_data.size() / 4);
for (size_t pos = 0; pos < m_data.size(); pos += 4) {
arr->push_back(
wpi::bit_cast<float>(wpi::support::endian::read32le(&m_data[pos])));
std::bit_cast<float>(wpi::support::endian::read32le(&m_data[pos])));
}
return true;
}
@@ -156,7 +156,7 @@ bool DataLogRecord::GetDoubleArray(std::vector<double>* arr) const {
arr->reserve(m_data.size() / 8);
for (size_t pos = 0; pos < m_data.size(); pos += 8) {
arr->push_back(
wpi::bit_cast<double>(wpi::support::endian::read64le(&m_data[pos])));
std::bit_cast<double>(wpi::support::endian::read64le(&m_data[pos])));
}
return true;
}