Enable moving of data into Boxed_Values when possible
This commit is contained in:
parent
87e40237d3
commit
f547b4bb10
@ -132,9 +132,9 @@ namespace chaiscript
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static std::shared_ptr<Data> get(const T& t)
|
static std::shared_ptr<Data> get(T t)
|
||||||
{
|
{
|
||||||
auto p = std::make_shared<T>(t);
|
auto p = std::make_shared<T>(std::move(t));
|
||||||
auto ptr = p.get();
|
auto ptr = p.get();
|
||||||
return std::make_shared<Data>(
|
return std::make_shared<Data>(
|
||||||
detail::Get_Type_Info<T>::get(),
|
detail::Get_Type_Info<T>::get(),
|
||||||
@ -158,9 +158,10 @@ namespace chaiscript
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
/// Basic Boxed_Value constructor
|
/// Basic Boxed_Value constructor
|
||||||
template<typename T>
|
template<typename T,
|
||||||
explicit Boxed_Value(T t)
|
typename = typename std::enable_if<!std::is_same<Boxed_Value, typename std::decay<T>::type>::value>::type>
|
||||||
: m_data(Object_Data::get(t))
|
explicit Boxed_Value(T &&t)
|
||||||
|
: m_data(Object_Data::get(std::forward<T>(t)))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user