2012-09-01から1ヶ月間の記事一覧

オブジェクトからテンプレートパラメータを取り出す

テンプレートクラスのインスタンスからテンプレートパラメータを取り出したいということが思う。そんなとき以下のようにすると取り出せる。 template<typename T,template<typename>class Target> T getType(Target<T>); template<typename T> class Hoge{}; int main(){ Hoge<int> hoge; decltype(getType(hoge</int></typename></t></typename>…

VS2010でテンプレートクラスの初期化子リストでメンバにラムダ式をわたす時の問題

結論から言うとコンパイルできなかった。問題のソースは以下。 class Hoge{ public: template<class T> Hoge(T func){func();} }; template<typename T> class Foo{ public: Foo(): hoge([](){return true;}) {} private: Hoge hoge; }; int main(){ return 0; } なぜだろうと思っ</typename></class>…

HSPのwaitとawaitの違い

waitとawaitなにが違うのという話をTLで見かけたので書いてみる。 ようするにwaitは常に指定秒数待つ、awaitは前のwaitから指定秒数待つということなのだが。 そうはいってもわかりにくいと思うのでまずはとりあえず検証プログラム。awaitとwaitを取り替えた…

std::unordered_mapやstd::mapの比較用のファンクタとしてラムダ式を渡す

やろうとして意外に面倒だった。が、だれも書いていないみたいなので書いておく。より面倒なのはstd::unordered_mapのほうなのでこちらについて主に書く。面倒なのは基本的にテンプレート引数としてファンクタを渡す仕様になっているということ。ラムダ式は…

「第2回 闇鍋プログラミング勉強会」に参加して発表してきました

ということで闇鍋プログラミング勉強会に参加させていただきました。 そして「関数型言語初心者がHaskellに挑戦してみた」という題でLTもさせていだたきました。いやー緊張しました。まずは全体の感想から。 闇鍋は名前のとおり色々な分野・興味の人が集まっ…

Pythonのデコレータとは何者か?

最近やっとPythonのデコレータがわかってきたのでなぜわからなかったのか、そして結局どういうものなのか書いておく。Pythonのデコレータのわかりにくい理由はまず挙げられているサンプルがよくないのだと思う。 def hoge(func): print "hoge" @hoge def bar…

バームクーヘン積分の導出

高校数学で回転体の積分のところで出てきますね。 おいしそうな名前の積分計算のテクニックです。今回はその導出をしてみようかと。 イメージとしてはバームクーヘンのように薄い円柱をくりぬいた層の あつまりとして図形を見るというような感じです。 まず…

HaskellでBrainf*ckを実装してみた

とりあえず、すごいH本がIO処理のところまでいったので 練習としてbrainf*ckの処理系作ってみました。 ソースコードはこちら→https://github.com/ikaro1192/brainfuck 括弧の処理とか一部の挙動が怪しいですが、なんとかうごきます。基本的にはイテレータが…