Entries from 2010-12-01 to 1 month

COMFRK vol2

http://ratiwo.blogspot.com/2010/12/comfrk-vol-2.htmlvol1 に引き続き、何か書きました。C++0x のムーブセマンティクスに関してです。基本的なモチベーションであるとか、そもそも参照って何?右辺値って何?みたいなレベルの話から、コピー、ムーブの可否…

循環参照と所有権の共有

循環参照というと C++ では下のようなコードのことを指すわけですが、 struct A { shared_ptr<B> bp; }; struct B { shared_ptr<A> ap; }; shared_ptr<A> ap(new A()); shared_ptr<B> bp(new B()); ap->bp = bp; bp->ap = ap; これに対する解決として weak_ptr を使うと</b></a></a></b>…

循環参照と所有権の共有訂正

なんか完全に間違えてました。本来は既に管理しているオブジェクトの一部をさす時に使うためのものなので、カスタムデリータが必要なんでした。 struct B; struct A { weak_ptr<B> b; }; struct B { weak_ptr<A> a; }; struct Deleter { Deleter(B* b) : b(b) { } </a></b>…

mutable

C++

別に自身の直接のメンバじゃなくてもよかったんですね。 struct A { mutable int i; }; struct B { void f() const { a.i = 0; } A a; }; 知らなかったというか、考えたことがなかった。あと const と同じで別に推移的ではない。

C++ プログラマのための C++0x 入門

これは C++ advent calendar の参加記事です。真面目な C++0x の紹介や入門は 25 日もあれば誰かが書いてくれると思うので、C++0x について何も知らなくてもすぐに分かる、ちょっとだけ幸せになれるかもしれない極めて些細な tips を書きます。後に変態記事…

メタプログラミングの会に参加しました。

絶対迷うまい、とあらかじめ地図をしっかり頭に叩きこんでおいたのに、まさかの乗り換え時に迷子っていう悲劇が発生しました。走り回って、凹んだ。 プログラミング言語Polemy(仮) ようは eval に評価機を指定できる言語、とでもいえばいいのかなあ。 eval(e…

peep 続報

ピンをたてたり、既読にしたり未読にしたりする操作は、同時に一つしたの項目に移るべきだよなーと思ったのでそうした。 ブラウザで開く処理が同期的に処理されてるみたいで、複数ピン立ててブラウザで開くのがあまりに辛い。それが辛くなるようなスペックの…

ocaml の多相比較関数の最適化の問題について調べた

もう一月前の話ですが…忘れる前に書いておきます。ocaml の多相関数が、より効率のよい単相な関数に置き換えられるのは、全適用の形でかかれている場合のみ、というちょっとした罠があります。詳細はこちら→ http://d.hatena.ne.jp/camlspotter/20100130/126…