From 935e9de19effab00049c7bd04b3b63b049fc7834 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Sun, 5 Oct 2014 14:58:27 -0600 Subject: [PATCH] GCC 4.6 fixes to cleanups --- include/chaiscript/dispatchkit/any.hpp | 4 ++-- include/chaiscript/dispatchkit/boxed_value.hpp | 5 +++-- include/chaiscript/dispatchkit/dispatchkit.hpp | 16 ++++++++-------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/include/chaiscript/dispatchkit/any.hpp b/include/chaiscript/dispatchkit/any.hpp index 89d8d8a..0abfa37 100644 --- a/include/chaiscript/dispatchkit/any.hpp +++ b/include/chaiscript/dispatchkit/any.hpp @@ -51,7 +51,7 @@ namespace chaiscript { Data &operator=(const Data &) = delete; - virtual ~Data() = default; + virtual ~Data() {} virtual void *data() = 0; const std::type_info &type() const @@ -72,7 +72,7 @@ namespace chaiscript { { } - virtual ~Data_Impl() = default; + virtual ~Data_Impl() {} virtual void *data() CHAISCRIPT_OVERRIDE { diff --git a/include/chaiscript/dispatchkit/boxed_value.hpp b/include/chaiscript/dispatchkit/boxed_value.hpp index dd8c210..6ff5763 100644 --- a/include/chaiscript/dispatchkit/boxed_value.hpp +++ b/include/chaiscript/dispatchkit/boxed_value.hpp @@ -123,11 +123,12 @@ namespace chaiscript template static std::shared_ptr get(std::reference_wrapper obj) { + auto p = &obj.get(); return std::make_shared( detail::Get_Type_Info::get(), - chaiscript::detail::Any(obj), + chaiscript::detail::Any(std::move(obj)), true, - &obj.get() + p ); } diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index c4299fc..63a0038 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -272,7 +272,7 @@ namespace chaiscript } } - virtual ~Dispatch_Function() = default; + virtual ~Dispatch_Function() {} virtual std::vector get_contained_functions() const CHAISCRIPT_OVERRIDE { @@ -464,7 +464,7 @@ namespace chaiscript { throw chaiscript::exception::name_conflict_error(name); } else { - stack.back().emplace(name, std::move(obj)); + stack.back().insert(std::make_pair(name, std::move(obj))); } } @@ -483,7 +483,7 @@ namespace chaiscript { throw chaiscript::exception::name_conflict_error(name); } else { - m_state.m_global_objects.emplace(name, obj); + m_state.m_global_objects.insert(std::make_pair(name, obj)); } } @@ -499,7 +499,7 @@ namespace chaiscript { throw chaiscript::exception::name_conflict_error(name); } else { - m_state.m_global_objects.emplace(name, obj); + m_state.m_global_objects.insert(std::make_pair(name, obj)); } } @@ -580,7 +580,7 @@ namespace chaiscript chaiscript::detail::threading::unique_lock l(m_mutex); - m_state.m_types.emplace(name, ti); + m_state.m_types.insert(std::make_pair(name, ti)); } /// Returns the type info for a named type @@ -745,7 +745,7 @@ namespace chaiscript for (const auto & fun : funs) { - objs.emplace(fun.first, const_var(fun.second)); + objs.insert(std::make_pair(fun.first, const_var(fun.second))); } return objs; @@ -1122,10 +1122,10 @@ namespace chaiscript // arithmetic operators, we must wrap it in a dispatch function // to allow for automatic arithmetic type conversions std::vector vec({t_f}); - funcs.emplace(t_name, vec); + funcs.insert(std::make_pair(t_name, vec)); func_objs[t_name] = std::make_shared(std::move(vec)); } else { - funcs.emplace(t_name, std::vector{t_f}); + funcs.insert(std::make_pair(t_name, std::vector{t_f})); func_objs[t_name] = t_f; }