Hello,
Is anybody storing UniquePersistent values in standard associative
containers? When I tried to store UniquePersistent values in a
std::unordered_map, I got an error with GCC:
#include <unordered_map>
#include <v8.h>
void add(v8::Isolate* isolate, int key, v8::Handle<v8::Value> value)
{
std::unordered_map<int, v8::UniquePersistent<v8::Value>> map;
v8::UniquePersistent<v8::Value> pvalue(isolate, value);
map.insert(std::make_pair(key, std::move(pvalue)));
}
When I add move constructor and assignment, it works:
// Moveable unique persistent
template<typename T>
struct MoveablePersistent : public v8::UniquePersistent<T>
{
typedef v8::UniquePersistent<T> base_class;
MoveablePersistent()
: base_class()
{
}
template<typename S>
MoveablePersistent(v8::Isolate* isolate, v8::Handle<S> const& handle)
: base_class(isolate, handle)
{
}
template<typename S>
MoveablePersistent(v8::Isolate* isolate, v8::PersistentBase<S> const&
handle)
: base_class(isolate, handle)
{
}
MoveablePersistent(MoveablePersistent&& src)
: base_class(src.Pass())
{
}
MoveablePersistent& operator=(MoveablePersistent&& src)
{
if (&src != this)
{
base_class::operator=(src.Pass());
}
return *this;
}
};
void add(v8::Isolate* isolate, int key, v8::Handle<v8::Value> value)
{
std::unordered_map<int, MoveablePersistent<v8::Value>> map;
MoveablePersistent<v8::Value> pvalue(isolate, value);
map.insert(std::make_pair(key, std::move(pvalue)));
}
Is it possible to add move semanics support for UniquePresistent values in
C++11 mode?
Cheers, Pavel
--
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.