C++

マクロ定義はメタプログラミング?

id:yagiey:20100128:1264631316で定義したマクロfooはhogeが束縛されているかどうかは気にしない。 展開された結果の式が、評価できる式なら構わないんだな。 マクロ展開を計算と捉えれば、マクロの定義はメタプログラミング考えられる。しかもホスト言語と…

積読書Get

近くの書店にふらっと寄ったら、Boost C++ Librariesに関する本があったので買ってみた。 最近仕事のC#ばっかりで、C++全然触ってないけど。 そうでなくてもプログラミングの本は腐るほど積読してるのに。さて、読了できるのはいつになる事やら。Boost C++を…

コンパイルが止まらねぇー

(define fact/cps (lambda (n cont) (if (= n 0) (cont 1) (fact/cps (- n 1) (lambda (m) (cont (* n m))))))) みたいな継続渡しスタイルの階乗計算をboost::mplでやってみた。 どこか間違えてるみたいで、コンパイルが停止しない。 #include <iostream> #include <boost/mpl/arithmetic.hpp> #i</boost/mpl/arithmetic.hpp></iostream>…

BoostのMPLさわってみる

眠れないので 1 (+ 1 2) (lambda (n) (+ 1 n)) ((lambda (n) (+ 1 n)) 2) 的なλ式をBoostのMPLで書いてみたらどうなるか調べてやってみた。 どこかで聞いたことある「MPLの主な用途は算術計算ではない」というnoticeはneglectな方向で。(ルー的に #include <boost/mpl/arithmetic.hpp></boost/mpl/arithmetic.hpp>…

もうC++なんて好きでもないし使いもしない理由。

C++

何が起きたのか? 嫌気が差したんだ。C++のどの面をとっても、その設計は性能と引き換えに私の生産性をうばった。もう一つうんざりなのは, リンカのエラー診断だ。ただライブラリをダウンロードして使うなんてことが決してできない。新しいライブラリを使う…

フィボナッチ数を求める関数をC++で継続渡しで書いてみる足掻き

C++

再帰の練習長6+をみて、C++で書いてみたいと思い、やってみた。 これも翻訳しているに過ぎないのだけど。 #include <iostream> #include <functional> #include <boost/function.hpp> #include <boost/bind.hpp> #include <boost/lambda/lambda.hpp> namespace { // 継続渡しでフィボナッチ数を求める int FibonacciCps(int n, boost::function<int(int)> </int(int)></boost/lambda/lambda.hpp></boost/bind.hpp></boost/function.hpp></functional></iostream>…

階乗を求める関数をC++で継続渡しで書いてみる足掻き

C++

今まで何度か書いた継続渡しによる階乗計算。 C++でやってみようと思い立ち、やってみました。 っていうか、慣れてきたとは言え、継続渡し自体まだ理解できてない。 単なる翻訳です。 #include <iostream> #include <functional> #include <boost/function.hpp> #include <boost/bind.hpp> #include <boost/lambda/lambda.hpp> namespace { // 継</boost/lambda/lambda.hpp></boost/bind.hpp></boost/function.hpp></functional></iostream>…