KEMURIをチューリング完全にするためにはどうしたらいいか、あるいはどうすればチューリング完全性を判定できるのか、ヒントを探していたら「C++テンプレートはチューリング完全だよー」という論文にたどり着いた。 C++ Templates are Turing Complete(PDF) Boost::MPL みたいなものが実現できるあたり、その可能性は感じていたけどやっぱりか!!但し、チューリング完全だと、いわゆる「チューリング機械の停止判定問題」があるわけで、C++はその問題を避けるために、言語仕様では最低17回の再帰までしか保証しないことにしている。なので、厳密にはチューリング完全ではないところ、これを無制限と仮定しているのがミソ。そして、テンプレートがチューリング完全ならば、(テンプレートを使った)C++プログラムはコンパイルできるかどうか判定する事が一般的にできなくなる*1。 昨年