C++

Boost.MPLでBrainfuckインタプリタを実装してみた

やってみました。まず構文木を作っているのでとても長いです。 ソース /* Example: typedef brainfuck::interpret< mpl::string<'+++[', '>,-.', '<-]'>, // Source : +++[>,-.<-] mpl::string<'IBM'> // Input : IBM >::type output; // Output : HAL BOOST…

Boost.MPLでエラトステネスの篩を実装してみた

『C++テンプレートメタプログラミング』を読み始めたので、Boost.MPLでエラトステネスの篩を実装してみました。 コード Pythonで書くところの def sieve(ns): return [ns[0]] + sieve([n for n in ns if n % ns[0]]) if ns else [] を、そのまま(?)C++のコー…