Commit c7282d5b by Francois Chabot

simpler endian detection for older gcc versions

parent 770ae6e9
...@@ -24,6 +24,20 @@ namespace nlohmann ...@@ -24,6 +24,20 @@ namespace nlohmann
{ {
namespace detail namespace detail
{ {
/*!
@brief determine system byte order
@return true if and only if system's byte order is little endian
@note from https://stackoverflow.com/a/1001328/266378
*/
static bool little_endianess(int num = 1) noexcept
{
return *reinterpret_cast<char*>(&num) == 1;
}
/////////////////// ///////////////////
// binary reader // // binary reader //
/////////////////// ///////////////////
...@@ -117,18 +131,6 @@ class binary_reader ...@@ -117,18 +131,6 @@ class binary_reader
return result; return result;
} }
/*!
@brief determine system byte order
@return true if and only if system's byte order is little endian
@note from https://stackoverflow.com/a/1001328/266378
*/
static constexpr bool little_endianess(int num = 1) noexcept
{
return *reinterpret_cast<char*>(&num) == 1;
}
private: private:
////////// //////////
// BSON // // BSON //
......
...@@ -1326,7 +1326,7 @@ class binary_writer ...@@ -1326,7 +1326,7 @@ class binary_writer
private: private:
/// whether we can assume little endianess /// whether we can assume little endianess
const bool is_little_endian = binary_reader<BasicJsonType, input_buffer_adapter>::little_endianess(); const bool is_little_endian = little_endianess();
/// the output /// the output
output_adapter_t<CharType> oa = nullptr; output_adapter_t<CharType> oa = nullptr;
......
...@@ -5214,6 +5214,20 @@ namespace nlohmann ...@@ -5214,6 +5214,20 @@ namespace nlohmann
{ {
namespace detail namespace detail
{ {
/*!
@brief determine system byte order
@return true if and only if system's byte order is little endian
@note from https://stackoverflow.com/a/1001328/266378
*/
static bool little_endianess(int num = 1) noexcept
{
return *reinterpret_cast<char*>(&num) == 1;
}
/////////////////// ///////////////////
// binary reader // // binary reader //
/////////////////// ///////////////////
...@@ -5307,18 +5321,6 @@ class binary_reader ...@@ -5307,18 +5321,6 @@ class binary_reader
return result; return result;
} }
/*!
@brief determine system byte order
@return true if and only if system's byte order is little endian
@note from https://stackoverflow.com/a/1001328/266378
*/
static constexpr bool little_endianess(int num = 1) noexcept
{
return *reinterpret_cast<char*>(&num) == 1;
}
private: private:
////////// //////////
// BSON // // BSON //
...@@ -12674,7 +12676,7 @@ class binary_writer ...@@ -12674,7 +12676,7 @@ class binary_writer
private: private:
/// whether we can assume little endianess /// whether we can assume little endianess
const bool is_little_endian = binary_reader<BasicJsonType, input_buffer_adapter>::little_endianess(); const bool is_little_endian = little_endianess();
/// the output /// the output
output_adapter_t<CharType> oa = nullptr; output_adapter_t<CharType> oa = nullptr;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment