Fix compile issue with wx inline asm

The wxAssert compile path on msw includes inline assembly which is
illegal for constexpr routines.  This replaces the wxAssert with
wxLogDebug as suggested by Ian
This commit is contained in:
Seth Hillbrand 2019-09-04 15:37:21 -07:00
parent 6688e80131
commit ac0df06312
1 changed files with 8 additions and 2 deletions

View File

@ -46,6 +46,7 @@
#include <limits> #include <limits>
#include <memory> #include <memory>
#include <type_traits> #include <type_traits>
#include <typeinfo>
class wxAboutDialogInfo; class wxAboutDialogInfo;
class SEARCH_STACK; class SEARCH_STACK;
@ -115,8 +116,13 @@ constexpr ret_type KiROUND( fp_type v )
using max_ret = long long int; using max_ret = long long int;
fp_type ret = v < 0 ? v - 0.5 : v + 0.5; fp_type ret = v < 0 ? v - 0.5 : v + 0.5;
wxASSERT( ret <= std::numeric_limits<ret_type>::max() if( std::numeric_limits<ret_type>::max() > ret ||
&& ret >= std::numeric_limits<ret_type>::lowest() ); std::numeric_limits<ret_type>::lowest() < ret )
{
wxLogDebug
( "Overflow KiROUND converting value %f to %s", double( v ), typeid(ret_type).name() );
return 0;
}
return ret_type( max_ret( ret ) ); return ret_type( max_ret( ret ) );
} }