Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
This commit is contained in:
		@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_HPP_
 | 
			
		||||
#define CHAISCRIPT_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_THREADING_HPP_
 | 
			
		||||
#define CHAISCRIPT_THREADING_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BAD_BOXED_CAST_HPP_
 | 
			
		||||
#define CHAISCRIPT_BAD_BOXED_CAST_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BIND_FIRST_HPP_
 | 
			
		||||
#define CHAISCRIPT_BIND_FIRST_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BOOTSTRAP_HPP_
 | 
			
		||||
#define CHAISCRIPT_BOOTSTRAP_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/// \file
 | 
			
		||||
/// This file contains utility functions for registration of STL container
 | 
			
		||||
/// classes. The methodology used is based on the SGI STL concepts.
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BOXED_CAST_HPP_
 | 
			
		||||
#define CHAISCRIPT_BOXED_CAST_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BOXED_CAST_HELPER_HPP_
 | 
			
		||||
#define CHAISCRIPT_BOXED_CAST_HELPER_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,9 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BOXED_NUMERIC_HPP_
 | 
			
		||||
#define CHAISCRIPT_BOXED_NUMERIC_HPP_
 | 
			
		||||
 | 
			
		||||
@@ -588,12 +591,20 @@ namespace chaiscript
 | 
			
		||||
      template<typename Source, typename Target> 
 | 
			
		||||
      static void check_type()
 | 
			
		||||
      {
 | 
			
		||||
#ifdef CHAISCRIPT_MSVC
 | 
			
		||||
// MSVC complains about this being redundant / tautologica l
 | 
			
		||||
#pragma warning(push)
 | 
			
		||||
#pragma warning(disable : 4127 6287)
 | 
			
		||||
#endif
 | 
			
		||||
        if (sizeof(Source) != sizeof(Target)
 | 
			
		||||
            || std::is_signed<Source>() != std::is_signed<Target>()
 | 
			
		||||
            || std::is_floating_point<Source>() != std::is_floating_point<Target>())
 | 
			
		||||
        {
 | 
			
		||||
          throw chaiscript::detail::exception::bad_any_cast();
 | 
			
		||||
        }
 | 
			
		||||
#ifdef CHAISCRIPT_MSVC
 | 
			
		||||
#pragma warning(pop)
 | 
			
		||||
#endif
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      template<typename Target> Target get_as_checked() const
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_BOXED_VALUE_HPP_
 | 
			
		||||
#define CHAISCRIPT_BOXED_VALUE_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_DISPATCHKIT_HPP_
 | 
			
		||||
#define CHAISCRIPT_DISPATCHKIT_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_DYNAMIC_OBJECT_HPP_
 | 
			
		||||
#define CHAISCRIPT_DYNAMIC_OBJECT_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_EXCEPTION_SPECIFICATION_HPP_
 | 
			
		||||
#define CHAISCRIPT_EXCEPTION_SPECIFICATION_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_FUNCTION_CALL_HPP_
 | 
			
		||||
#define CHAISCRIPT_FUNCTION_CALL_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_FUNCTION_CALL_DETAIL_HPP_
 | 
			
		||||
#define CHAISCRIPT_FUNCTION_CALL_DETAIL_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_HANDLE_RETURN_HPP_
 | 
			
		||||
#define CHAISCRIPT_HANDLE_RETURN_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_OPERATORS_HPP_
 | 
			
		||||
#define CHAISCRIPT_OPERATORS_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,9 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_PROXY_CONSTRUCTORS_HPP_
 | 
			
		||||
#define CHAISCRIPT_PROXY_CONSTRUCTORS_HPP_
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,9 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_PROXY_FUNCTIONS_HPP_
 | 
			
		||||
#define CHAISCRIPT_PROXY_FUNCTIONS_HPP_
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_PROXY_FUNCTIONS_DETAIL_HPP_
 | 
			
		||||
#define CHAISCRIPT_PROXY_FUNCTIONS_DETAIL_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_REGISTER_FUNCTION_HPP_
 | 
			
		||||
#define CHAISCRIPT_REGISTER_FUNCTION_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_DYNAMIC_CAST_CONVERSION_HPP_
 | 
			
		||||
#define CHAISCRIPT_DYNAMIC_CAST_CONVERSION_HPP_
 | 
			
		||||
 | 
			
		||||
@@ -340,15 +344,11 @@ namespace chaiscript
 | 
			
		||||
      {
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      Type_Conversions(const Type_Conversions &t_other)
 | 
			
		||||
        : m_mutex(),
 | 
			
		||||
          m_conversions(t_other.get_conversions()),
 | 
			
		||||
          m_convertableTypes(t_other.m_convertableTypes),
 | 
			
		||||
          m_num_types(m_conversions.size()),
 | 
			
		||||
          m_thread_cache(this),
 | 
			
		||||
          m_conversion_saves(this)
 | 
			
		||||
      {
 | 
			
		||||
      }
 | 
			
		||||
      Type_Conversions(const Type_Conversions &t_other) = delete;
 | 
			
		||||
      Type_Conversions(Type_Conversions &&) = default;
 | 
			
		||||
 | 
			
		||||
      Type_Conversions &operator=(const Type_Conversions &) = delete;
 | 
			
		||||
      Type_Conversions &operator=(Type_Conversions &&) = default;
 | 
			
		||||
 | 
			
		||||
      const std::set<const std::type_info *, Less_Than> &thread_cache() const
 | 
			
		||||
      {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_TYPE_INFO_HPP_
 | 
			
		||||
#define CHAISCRIPT_TYPE_INFO_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_ALGEBRAIC_HPP_
 | 
			
		||||
#define CHAISCRIPT_ALGEBRAIC_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_COMMON_HPP_
 | 
			
		||||
#define CHAISCRIPT_COMMON_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_ENGINE_HPP_
 | 
			
		||||
#define CHAISCRIPT_ENGINE_HPP_
 | 
			
		||||
 | 
			
		||||
@@ -145,9 +149,6 @@ namespace chaiscript
 | 
			
		||||
              })
 | 
			
		||||
          , "call_exists");
 | 
			
		||||
 | 
			
		||||
//      m_engine.add(fun<Boxed_Value (const dispatch::Proxy_Function_Base *, const std::vector<Boxed_Value> &)>(std::bind(&chaiscript::dispatch::Proxy_Function_Base::operator(), std::placeholders::_1, std::placeholders::_2, std::ref(m_engine.conversions()))), "call");
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
      m_engine.add(fun(
 | 
			
		||||
            [=](const dispatch::Proxy_Function_Base &t_fun, const std::vector<Boxed_Value> &t_params) -> Boxed_Value {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_EVAL_HPP_
 | 
			
		||||
#define CHAISCRIPT_EVAL_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_PARSER_HPP_
 | 
			
		||||
#define CHAISCRIPT_PARSER_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CHAISCRIPT_UTILITY_UTILITY_HPP_
 | 
			
		||||
#define CHAISCRIPT_UTILITY_UTILITY_HPP_
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ Current Version: 6.0.0
 | 
			
		||||
 | 
			
		||||
* Modular optimization system; this can be accessed via the ChaiScript_Basic interface
 | 
			
		||||
* Execution tracing capability; also accessed via ChaiScript_Basic interface
 | 
			
		||||
* range-based for loops `for( id : container ) { }`
 | 
			
		||||
* range-based for loops `for( id : container ) { }` (much better performance than other loop types)
 | 
			
		||||
* If-init expressions (ala C++17)
 | 
			
		||||
* Support for passing r-value references to functions
 | 
			
		||||
* Support for containing unique_ptr
 | 
			
		||||
@@ -39,6 +39,7 @@ Current Version: 6.0.0
 | 
			
		||||
* Compile size improvements
 | 
			
		||||
* Significant runtime improvements (see "Modular optimization system")
 | 
			
		||||
* Significant parser improvements, both with parse-time and parser initialization time (Thanks @niXman)
 | 
			
		||||
* Fix type conversion to bool in conditionals
 | 
			
		||||
 | 
			
		||||
#### Improvements Still Need To Be Made
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <list>
 | 
			
		||||
#include <regex>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <list>
 | 
			
		||||
#include <regex>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,10 @@
 | 
			
		||||
// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
 | 
			
		||||
// http://www.chaiscript.com
 | 
			
		||||
 | 
			
		||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
 | 
			
		||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <chaiscript/chaiscript_basic.hpp>
 | 
			
		||||
#include <chaiscript/dispatchkit/bootstrap_stl.hpp>
 | 
			
		||||
#include <list>
 | 
			
		||||
 
 | 
			
		||||
@@ -198,7 +198,7 @@ TEST_CASE("Throw int or double")
 | 
			
		||||
    chai.eval("throw(1.0)", chaiscript::exception_specification<int, double>());
 | 
			
		||||
    REQUIRE(false);
 | 
			
		||||
  } catch (const double e) {
 | 
			
		||||
    CHECK(e == 1.0);
 | 
			
		||||
    CHECK(e == Approx(1.0));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,13 @@
 | 
			
		||||
#include "../static_libs/chaiscript_stdlib.hpp"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef CHAISCRIPT_MSVC
 | 
			
		||||
// ignore errors about negative unsigned integer literals
 | 
			
		||||
#pragma warning(push)
 | 
			
		||||
#pragma warning(disable : 4146)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define TEST_LITERAL(v) test_literal(v, #v)
 | 
			
		||||
#define TEST_LITERAL_SIGNED(v) test_literal(v, #v, true)
 | 
			
		||||
 | 
			
		||||
@@ -192,12 +199,18 @@ int main()
 | 
			
		||||
      && TEST_LITERAL(255)
 | 
			
		||||
      && TEST_LITERAL(65535)
 | 
			
		||||
      && TEST_LITERAL(16777215)
 | 
			
		||||
      && TEST_LITERAL(4294967295)
 | 
			
		||||
#ifndef CHAISCRIPT_MSVC
 | 
			
		||||
        // bug in cl.exe causes this to be incorrectly parsed as an unsigned
 | 
			
		||||
        && TEST_LITERAL(4294967295)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-255)
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-65535)
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-16777215)
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-4294967295)
 | 
			
		||||
#ifndef CHAISCRIPT_MSVC
 | 
			
		||||
        // bug in cl.exe causes this to be incorrectly parsed as an unsigned
 | 
			
		||||
        && TEST_LITERAL_SIGNED(-4294967295)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
      && TEST_LITERAL(255u)
 | 
			
		||||
      && TEST_LITERAL(65535u)
 | 
			
		||||
@@ -212,12 +225,18 @@ int main()
 | 
			
		||||
      && TEST_LITERAL(255l)
 | 
			
		||||
      && TEST_LITERAL(65535l)
 | 
			
		||||
      && TEST_LITERAL(16777215l)
 | 
			
		||||
      && TEST_LITERAL(4294967295l)
 | 
			
		||||
#ifndef CHAISCRIPT_MSVC
 | 
			
		||||
        // bug in cl.exe causes this to be incorrectly parsed as an unsigned
 | 
			
		||||
        && TEST_LITERAL(4294967295l)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-255l)
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-65535l)
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-16777215l)
 | 
			
		||||
      && TEST_LITERAL_SIGNED(-4294967295l)
 | 
			
		||||
#ifndef CHAISCRIPT_MSVC
 | 
			
		||||
        // bug in cl.exe causes this to be incorrectly parsed as an unsigned
 | 
			
		||||
        && TEST_LITERAL_SIGNED(-4294967295l)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
      && TEST_LITERAL(255ul)
 | 
			
		||||
      && TEST_LITERAL(65535ul)
 | 
			
		||||
@@ -257,8 +276,9 @@ int main()
 | 
			
		||||
    return EXIT_FAILURE;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef CHAISCRIPT_MSVC
 | 
			
		||||
#pragma warning(pop)
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user