15.embind smart pointerスマートポインタ
2489 ワード
#include
#include
using namespace emscripten;
class Class {
public:
Class(int x) : x(x) {}
inline int getX () const {
return x;
}
inline void setX(int val) {
x = val;
}
private:
int x;
};
std::shared_ptr passThrough(Class *ptr) {
return std::shared_ptr(ptr);
}
std::unique_ptr<int> passToUniquePtr (int v) {
return std::unique_ptr<int>(new int(v));
}
EMSCRIPTEN_BINDINGS(module) {
class_("Class")
.constructor<int>()
.smart_ptr<:shared_ptr>>("shared_ptr")
.property("x", &Class::getX, &Class::setX);
function("passThrough", &passThrough, allow_raw_pointers());
function("passToUniquePtr", &passToUniquePtr);
}
/*
EMSCRIPTEN_BINDINGS(module) {
class_("Class")
.smart_ptr_constructor("shared_ptr", &std::make_shared)
.property("x", &Class::getX, &Class::setX);
*/