Merge pull request #2479

58908295 Fixes static_assert on arm and ppc builds (Lee Clagett)
This commit is contained in:
Riccardo Spagni 2017-09-21 11:50:34 +02:00
commit 0f071848a1
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
1 changed files with 3 additions and 1 deletions

View File

@ -29,6 +29,7 @@
#include "json_object.h" #include "json_object.h"
#include <limits> #include <limits>
#include <type_traits>
#include "string_tools.h" #include "string_tools.h"
namespace cryptonote namespace cryptonote
@ -52,8 +53,9 @@ namespace
void convert_numeric(Source source, Type& i) void convert_numeric(Source source, Type& i)
{ {
static_assert( static_assert(
(std::is_same<Type, char>() && std::is_same<Source, int>()) ||
std::numeric_limits<Source>::is_signed == std::numeric_limits<Type>::is_signed, std::numeric_limits<Source>::is_signed == std::numeric_limits<Type>::is_signed,
"source and destination signs do not match" "comparisons below may have undefined behavior"
); );
if (source < std::numeric_limits<Type>::min()) if (source < std::numeric_limits<Type>::min())
{ {