Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
emscripten-core
GitHub Repository: emscripten-core/emscripten
Path: blob/main/test/embind/test_finalization.cpp
4150 views
1
#include <emscripten/bind.h>
2
#include <iostream>
3
#include <memory>
4
5
class Foo {
6
std::string mName;
7
8
public:
9
Foo(std::string name) : mName(name) {}
10
~Foo() { std::cout << mName << " destructed" << std::endl; }
11
};
12
13
std::shared_ptr<Foo> foo() {
14
return std::make_shared<Foo>("Constructed from C++");
15
}
16
17
Foo* pFoo() { return new Foo("Foo*"); }
18
19
using namespace emscripten;
20
21
EMSCRIPTEN_BINDINGS(Marci) {
22
class_<Foo>("Foo").smart_ptr_constructor<std::shared_ptr<Foo>>(
23
"Foo", &std::make_shared<Foo, std::string>);
24
25
function("foo", foo);
26
function("pFoo", pFoo, allow_raw_pointers());
27
}
28
29