C++11 related cleanup and improvments
This commit is contained in:
parent
6c2ccf3869
commit
5861c45fc1
@ -46,13 +46,9 @@ namespace chaiscript
|
|||||||
/// \param[in] v Boxed_Number to copy into the new object
|
/// \param[in] v Boxed_Number to copy into the new object
|
||||||
/// \returns The newly created object.
|
/// \returns The newly created object.
|
||||||
template<typename P1>
|
template<typename P1>
|
||||||
std::shared_ptr<P1> construct_pod(Boxed_Number v)
|
std::shared_ptr<P1> construct_pod(const Boxed_Number &v)
|
||||||
{
|
{
|
||||||
std::shared_ptr<P1> p(new P1());
|
return std::make_shared<P1>(v.get_as<P1>());
|
||||||
Boxed_Value bv(p);
|
|
||||||
Boxed_Number nb(bv);
|
|
||||||
nb = v;
|
|
||||||
return p;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,8 +334,8 @@ namespace chaiscript
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Boxed_Number(const Boxed_Value &v)
|
Boxed_Number(Boxed_Value v)
|
||||||
: bv(v)
|
: bv(std::move(v))
|
||||||
{
|
{
|
||||||
validate_boxed_number(v);
|
validate_boxed_number(v);
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ namespace chaiscript
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
Boxed_Value const_var_impl(const T &t)
|
Boxed_Value const_var_impl(const T &t)
|
||||||
{
|
{
|
||||||
return Boxed_Value(std::shared_ptr<typename std::add_const<T>::type >(new T(t)));
|
return Boxed_Value(std::make_shared<typename std::add_const<T>::type >(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Takes a pointer to a value, adds const to the pointed to type and returns an immutable Boxed_Value.
|
/// \brief Takes a pointer to a value, adds const to the pointed to type and returns an immutable Boxed_Value.
|
||||||
|
@ -430,7 +430,7 @@ namespace chaiscript
|
|||||||
|
|
||||||
Dispatch_Engine()
|
Dispatch_Engine()
|
||||||
: m_stack_holder(this),
|
: m_stack_holder(this),
|
||||||
m_place_holder(std::shared_ptr<dispatch::Placeholder_Object>(new dispatch::Placeholder_Object()))
|
m_place_holder(std::make_shared<dispatch::Placeholder_Object>())
|
||||||
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -549,8 +549,7 @@ namespace chaiscript
|
|||||||
*/
|
*/
|
||||||
void new_scope()
|
void new_scope()
|
||||||
{
|
{
|
||||||
StackData &stack = get_stack_data();
|
get_stack_data().emplace_back();
|
||||||
stack.push_back(Scope());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -571,9 +570,8 @@ namespace chaiscript
|
|||||||
/// Pushes a new stack on to the list of stacks
|
/// Pushes a new stack on to the list of stacks
|
||||||
void new_stack()
|
void new_stack()
|
||||||
{
|
{
|
||||||
Stack s(new Stack::element_type());
|
// add a new Stack with 1 element
|
||||||
s->push_back(Scope());
|
m_stack_holder->stacks.emplace_back(std::make_shared<StackData>(1));
|
||||||
m_stack_holder->stacks.push_back(s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void pop_stack()
|
void pop_stack()
|
||||||
@ -836,7 +834,7 @@ namespace chaiscript
|
|||||||
{
|
{
|
||||||
for (const auto & internal_func : function.second)
|
for (const auto & internal_func : function.second)
|
||||||
{
|
{
|
||||||
rets.push_back(std::make_pair(function.first, internal_func));
|
rets.emplace_back(function.first, internal_func);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -867,19 +865,14 @@ namespace chaiscript
|
|||||||
return call_function(t_name, std::vector<Boxed_Value>());
|
return call_function(t_name, std::vector<Boxed_Value>());
|
||||||
}
|
}
|
||||||
|
|
||||||
Boxed_Value call_function(const std::string &t_name, const Boxed_Value &p1) const
|
Boxed_Value call_function(const std::string &t_name, Boxed_Value p1) const
|
||||||
{
|
{
|
||||||
std::vector<Boxed_Value> params;
|
return call_function(t_name, std::vector<Boxed_Value>({std::move(p1)}));
|
||||||
params.push_back(p1);
|
|
||||||
return call_function(t_name, params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Boxed_Value call_function(const std::string &t_name, const Boxed_Value &p1, const Boxed_Value &p2) const
|
Boxed_Value call_function(const std::string &t_name, Boxed_Value p1, Boxed_Value p2) const
|
||||||
{
|
{
|
||||||
std::vector<Boxed_Value> params;
|
return call_function(t_name, std::vector<Boxed_Value>({std::move(p1), std::move(p2)}));
|
||||||
params.push_back(p1);
|
|
||||||
params.push_back(p2);
|
|
||||||
return call_function(t_name, params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1219,14 +1212,11 @@ namespace chaiscript
|
|||||||
// if the function is the only function but it also contains
|
// if the function is the only function but it also contains
|
||||||
// arithmetic operators, we must wrap it in a dispatch function
|
// arithmetic operators, we must wrap it in a dispatch function
|
||||||
// to allow for automatic arithmetic type conversions
|
// to allow for automatic arithmetic type conversions
|
||||||
std::vector<Proxy_Function> vec;
|
std::vector<Proxy_Function> vec({t_f});
|
||||||
vec.push_back(t_f);
|
|
||||||
funcs.insert(std::make_pair(t_name, vec));
|
funcs.insert(std::make_pair(t_name, vec));
|
||||||
func_objs[t_name] = Proxy_Function(new Dispatch_Function(vec));
|
func_objs[t_name] = Proxy_Function(new Dispatch_Function(vec));
|
||||||
} else {
|
} else {
|
||||||
std::vector<Proxy_Function> vec;
|
funcs.insert(std::make_pair(t_name, std::vector<Proxy_Function>({t_f})));
|
||||||
vec.push_back(t_f);
|
|
||||||
funcs.insert(std::make_pair(t_name, vec));
|
|
||||||
func_objs[t_name] = t_f;
|
func_objs[t_name] = t_f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1241,9 +1231,7 @@ namespace chaiscript
|
|||||||
Stack_Holder()
|
Stack_Holder()
|
||||||
: call_depth(0)
|
: call_depth(0)
|
||||||
{
|
{
|
||||||
Stack s(new StackData());
|
stacks.emplace_back(std::make_shared<StackData>(1));
|
||||||
s->push_back(Scope());
|
|
||||||
stacks.push_back(s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::deque<Stack> stacks;
|
std::deque<Stack> stacks;
|
||||||
|
@ -21,7 +21,7 @@ namespace chaiscript
|
|||||||
template<typename Class, typename ... Params>
|
template<typename Class, typename ... Params>
|
||||||
std::shared_ptr<Class> constructor_(Params ... params)
|
std::shared_ptr<Class> constructor_(Params ... params)
|
||||||
{
|
{
|
||||||
return std::shared_ptr<Class>(new Class(params...));
|
return std::make_shared<Class>(params...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Class, typename ... Params >
|
template<typename Class, typename ... Params >
|
||||||
|
Loading…
x
Reference in New Issue
Block a user