Merge branch 'ChaiScript_5_0_CPP_11' of https://github.com/ChaiScript/ChaiScript into ChaiScript_5_0_CPP_11

This commit is contained in:
Jason Turner 2014-03-22 16:26:51 -06:00
commit 00c8bf4973
5 changed files with 27 additions and 6 deletions

16
.travis.yml Normal file
View File

@ -0,0 +1,16 @@
language: cpp
compiler:
- gcc
script:
- mkdir build
- cd build
- cmake ../
- make
- make test
notifications:
recipients:
- jason@emptycrate.com
email:
on_success: always
on_failure: always

View File

@ -97,7 +97,7 @@ if(MSVC)
# how to workaround or fix the error. So I'm disabling it globally. # how to workaround or fix the error. So I'm disabling it globally.
ADD_DEFINITIONS(/wd4503) ADD_DEFINITIONS(/wd4503)
else() else()
add_definitions(-Wall -Wextra -Wshadow -pedantic ${CPP11_FLAG}) add_definitions(-Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic ${CPP11_FLAG})
if (APPLE) if (APPLE)
add_definitions(-Wno-sign-compare) add_definitions(-Wno-sign-compare)

View File

@ -42,6 +42,7 @@ namespace chaiscript {
private: private:
struct Data struct Data
{ {
virtual ~Data() {}
virtual void *data() = 0; virtual void *data() = 0;
virtual const std::type_info &type() const = 0; virtual const std::type_info &type() const = 0;
virtual std::shared_ptr<Data> clone() const = 0; virtual std::shared_ptr<Data> clone() const = 0;
@ -56,6 +57,8 @@ namespace chaiscript {
{ {
} }
virtual ~Data_Impl() {}
virtual void *data() virtual void *data()
{ {
return &m_data; return &m_data;
@ -95,8 +98,8 @@ namespace chaiscript {
template<typename ValueType> template<typename ValueType>
Any(const ValueType &t_value) Any(const ValueType &t_value)
: m_data(std::shared_ptr<Data>(new Data_Impl<ValueType>(t_value)))
{ {
m_data = std::shared_ptr<Data>(new Data_Impl<ValueType>(t_value));
} }
Any & operator=(const Any &t_any) Any & operator=(const Any &t_any)

View File

@ -39,6 +39,7 @@ namespace chaiscript
{ {
public: public:
virtual ~Proxy_Function_Base() {} virtual ~Proxy_Function_Base() {}
Boxed_Value operator()(const std::vector<Boxed_Value> &params, const chaiscript::Dynamic_Cast_Conversions &t_conversions) const Boxed_Value operator()(const std::vector<Boxed_Value> &params, const chaiscript::Dynamic_Cast_Conversions &t_conversions) const
{ {
Boxed_Value bv = do_call(params, t_conversions); Boxed_Value bv = do_call(params, t_conversions);
@ -205,6 +206,8 @@ namespace chaiscript
{ {
} }
virtual ~Dynamic_Proxy_Function() {}
virtual bool operator==(const Proxy_Function_Base &rhs) const virtual bool operator==(const Proxy_Function_Base &rhs) const
{ {
const Dynamic_Proxy_Function *prhs = dynamic_cast<const Dynamic_Proxy_Function *>(&rhs); const Dynamic_Proxy_Function *prhs = dynamic_cast<const Dynamic_Proxy_Function *>(&rhs);
@ -221,9 +224,6 @@ namespace chaiscript
&& test_guard(vals, t_conversions); && test_guard(vals, t_conversions);
} }
virtual ~Dynamic_Proxy_Function() {}
virtual int get_arity() const virtual int get_arity() const
{ {
return m_arity; return m_arity;

View File

@ -1,3 +1,5 @@
[![Build Status](https://travis-ci.org/ChaiScript/ChaiScript.png?branch=ChaiScript_5_0_CPP_11)](https://travis-ci.org/ChaiScript/ChaiScript)
ChaiScript ChaiScript
http://www.chaiscript.com http://www.chaiscript.com