Various Windows fixes
This commit is contained in:
parent
0eee23109e
commit
ad7e2138d9
@ -158,7 +158,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
add_definitions(/W4)
|
add_definitions(/W4 /w14545 /w34062 /w34242 /w34254 /w34287 /w44263 /w44265 /w44296 /w44311 /w44826 /we4289 /w14546 /w14547 /w14549 /w14555 /w14619 /w14905 /w14906 /w14928)
|
||||||
|
|
||||||
# VS2013 doesn't have magic statics
|
# VS2013 doesn't have magic statics
|
||||||
if (MSVC_VERSION STREQUAL "1800")
|
if (MSVC_VERSION STREQUAL "1800")
|
||||||
|
@ -154,7 +154,8 @@ namespace chaiscript {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for(char c = *t_str; (c = *t_str); ++t_str) {
|
for(; *t_str != '\0'; ++t_str) {
|
||||||
|
char c = *t_str;
|
||||||
if (c == '.') {
|
if (c == '.') {
|
||||||
decimal_place = 10;
|
decimal_place = 10;
|
||||||
} else if (c == 'e' || c == 'E') {
|
} else if (c == 'e' || c == 'E') {
|
||||||
|
@ -43,7 +43,7 @@ namespace chaiscript
|
|||||||
// this is OK, so we're disabling size/and sign type warnings
|
// this is OK, so we're disabling size/and sign type warnings
|
||||||
#ifdef CHAISCRIPT_MSVC
|
#ifdef CHAISCRIPT_MSVC
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable : 4244 4018 4389 4146 4365 4267)
|
#pragma warning(disable : 4244 4018 4389 4146 4365 4267 4242)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -591,14 +591,14 @@ namespace chaiscript
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Adds a new scope to the stack
|
/// Adds a new scope to the stack
|
||||||
void new_scope(Stack_Holder &t_holder)
|
static void new_scope(Stack_Holder &t_holder)
|
||||||
{
|
{
|
||||||
get_stack_data(t_holder).emplace_back();
|
get_stack_data(t_holder).emplace_back();
|
||||||
t_holder.call_params.emplace_back();
|
t_holder.call_params.emplace_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pops the current scope from the stack
|
/// Pops the current scope from the stack
|
||||||
void pop_scope(Stack_Holder &t_holder)
|
static void pop_scope(Stack_Holder &t_holder)
|
||||||
{
|
{
|
||||||
t_holder.call_params.pop_back();
|
t_holder.call_params.pop_back();
|
||||||
StackData &stack = get_stack_data(t_holder);
|
StackData &stack = get_stack_data(t_holder);
|
||||||
@ -910,8 +910,8 @@ namespace chaiscript
|
|||||||
return m_conversions;
|
return m_conversions;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_attribute_call(const std::vector<Proxy_Function> &t_funs, const std::vector<Boxed_Value> &t_params,
|
static bool is_attribute_call(const std::vector<Proxy_Function> &t_funs, const std::vector<Boxed_Value> &t_params,
|
||||||
bool t_has_params, const Type_Conversions_State &t_conversions) const
|
bool t_has_params, const Type_Conversions_State &t_conversions)
|
||||||
{
|
{
|
||||||
if (!t_has_params || t_params.empty()) {
|
if (!t_has_params || t_params.empty()) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -212,16 +212,16 @@ class JSON
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
JSON( T b, typename enable_if<is_same<T,bool>::value>::type* = 0 ) : Internal( b ), Type( Class::Boolean ){}
|
JSON( T b, typename enable_if<is_same<T,bool>::value>::type* = nullptr ) : Internal( b ), Type( Class::Boolean ){}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
JSON( T i, typename enable_if<is_integral<T>::value && !is_same<T,bool>::value>::type* = 0 ) : Internal( long(i) ), Type( Class::Integral ){}
|
JSON( T i, typename enable_if<is_integral<T>::value && !is_same<T,bool>::value>::type* = nullptr ) : Internal( long(i) ), Type( Class::Integral ){}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
JSON( T f, typename enable_if<is_floating_point<T>::value>::type* = 0 ) : Internal( double(f) ), Type( Class::Floating ){}
|
JSON( T f, typename enable_if<is_floating_point<T>::value>::type* = nullptr ) : Internal( double(f) ), Type( Class::Floating ){}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
JSON( T s, typename enable_if<is_convertible<T,string>::value>::type* = 0 ) : Internal( string( s ) ), Type( Class::String ){}
|
JSON( T s, typename enable_if<is_convertible<T,string>::value>::type* = nullptr ) : Internal( string( s ) ), Type( Class::String ){}
|
||||||
|
|
||||||
JSON( std::nullptr_t ) : Internal(), Type( Class::Null ){}
|
JSON( std::nullptr_t ) : Internal(), Type( Class::Null ){}
|
||||||
|
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
// All of these are necessary because of catch.hpp. It's OK, they'll be
|
// All of these are necessary because of catch.hpp. It's OK, they'll be
|
||||||
// caught in other cpp files if chaiscript causes them
|
// caught in other cpp files if chaiscript causes them
|
||||||
|
|
||||||
#include <chaiscript/utility/utility.hpp>
|
|
||||||
#include <chaiscript/dispatchkit/bootstrap_stl.hpp>
|
|
||||||
|
|
||||||
#ifdef CHAISCRIPT_MSVC
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable : 4190 4640 28251 4702 6330)
|
#pragma warning(disable : 4242 28251)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
@ -15,6 +13,13 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include <chaiscript/chaiscript.hpp>
|
||||||
|
#include <chaiscript/utility/utility.hpp>
|
||||||
|
#include <chaiscript/dispatchkit/bootstrap_stl.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define CATCH_CONFIG_MAIN
|
#define CATCH_CONFIG_MAIN
|
||||||
|
|
||||||
#include <clocale>
|
#include <clocale>
|
||||||
@ -929,7 +934,11 @@ TEST_CASE("Map conversions")
|
|||||||
|
|
||||||
TEST_CASE("Parse floats with non-posix locale")
|
TEST_CASE("Parse floats with non-posix locale")
|
||||||
{
|
{
|
||||||
std::cout << "Current locale: " << std::setlocale(LC_ALL, "en_ZA.utf8") << '\n';
|
#ifdef CHAISCRIPT_MSVC
|
||||||
|
std::setlocale(LC_ALL, "en-ZA");
|
||||||
|
#else
|
||||||
|
std::setlocale(LC_ALL, "en_ZA.utf8");
|
||||||
|
#endif
|
||||||
chaiscript::ChaiScript chai;
|
chaiscript::ChaiScript chai;
|
||||||
const double parsed = chai.eval<double>("print(1.3); 1.3");
|
const double parsed = chai.eval<double>("print(1.3); 1.3");
|
||||||
CHECK(parsed == Approx(1.3));
|
CHECK(parsed == Approx(1.3));
|
||||||
|
@ -1,30 +1,21 @@
|
|||||||
// Tests to make sure that the order in which function dispatches occur is correct
|
// Tests to make sure that the order in which function dispatches occur is correct
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(push)
|
||||||
|
#pragma warning(disable : 4242 28251)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wparentheses"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include <chaiscript/chaiscript_defines.hpp>
|
#include <chaiscript/chaiscript_defines.hpp>
|
||||||
#include <chaiscript/dispatchkit/type_info.hpp>
|
#include <chaiscript/dispatchkit/type_info.hpp>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
#ifdef CHAISCRIPT_MSVC
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable : 4190 4640 28251 4702 6330)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wshadow"
|
|
||||||
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __llvm__
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
|
|
||||||
#pragma clang diagnostic ignored "-Wold-style-cast"
|
|
||||||
#pragma clang diagnostic ignored "-Wexit-time-destructors"
|
|
||||||
#pragma clang diagnostic ignored "-Wfloat-equal"
|
|
||||||
#pragma clang diagnostic ignored "-Wunreachable-code"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user