C以外のコードもemscriptenしてみる
emscriptenのwikiをみるかぎり、すでにかなり様々なアプリケーションがemscriptenで動いているようです。ちょっと試したところ、以下のようなC++11なコードも動きましたし、純粋にロジックだけのコードはかなり動くようですね。
#include <memory> #include <iostream> class guard { public: ~guard() { std::cout << "guard end" << std::endl; } }; int main() { { auto g = std::make_shared<guard>(); std::cout << "one" << std::endl; } { auto g = std::make_shared<guard>(); std::cout << "two" << std::endl; } }
実行:
$ em++ -std=c++11 a.c $ node a.out.js one guard end two guard end
llgoなどもllvm bitcodeを出力できるのでemscriptenでビルドできるはず、とおもって試してみたところビルドはできたのですが、ランタイムライブラリが足りずに実行まではいたりませんでした。後ほど試してみたいと思います。