■
ついったーのむぎゅ〜>ω<ポータルこと、桜花たん。
http://d.hatena.ne.jp/rofi/20100606/1275852609
今回もこんなに面白いことしてくれました。
ちょっと、萌燃えますよね。
したら、僕はこれだぜ!
(ていうかパクりです。さーせん><。)
#include <iostream> #include <boost/lambda/lambda.hpp> #include <boost/lambda/if.hpp> #include <pstade/oven/counting.hpp> #include <pstade/oven/forall.hpp> #include <boost/lexical_cast.hpp> #define BLL boost::lambda #define PO pstade::oven //引数に与えられた数まで計算するよ。 int main(int ac,char**av){if(PO::forall(PO::counting(1,boost::lexical_cast<int>(av[1])),(BLL::if_(BLL::_1%3&&BLL::_1%5)[std::cout<<BLL::_1].else_[BLL::if_(!(BLL::_1%3))[std::cout<<BLL::constant("Fizz")],BLL::if_(!(BLL::_1%5))[std::cout<<BLL::constant("Buzz")]],std::cout<<BLL::constant("\n"),true)),true){}}
ワンライナーってヤツさ。あと、セミコロンレス。counting使ってしまうのが、ちょっと卑怯くさいけれど。。。
boost1.42.0
pstade1.04.3
VisualStudio2008 SP1で確認。
gcc4.5系では、ovenライブラリはうまく動かないです。