| class Foo { | |
| std::string mName; | |
| public: | |
| Foo(std::string name) : mName(name) {} | |
| ~Foo() { std::cout << mName << " destructed" << std::endl; } | |
| }; | |
| std::shared_ptr<Foo> foo() { | |
| return std::make_shared<Foo>("Constructed from C++"); | |
| } | |
| Foo* pFoo() { return new Foo("Foo*"); } | |
| using namespace emscripten; | |
| EMSCRIPTEN_BINDINGS(Marci) { | |
| class_<Foo>("Foo").smart_ptr_constructor<std::shared_ptr<Foo>>( | |
| "Foo", &std::make_shared<Foo, std::string>); | |
| function("foo", foo); | |
| function("pFoo", pFoo, allow_raw_pointers()); | |
| } | |