2008-01-01から1年間の記事一覧

concept_map 使って AOP にゃ

concept_map 使って aspect-oriented に書こうとすると,異なる concept_map 導入する関数を各々書く感じになるんかにぇ? concept G<T> { void do(T &); } template<G T> concept SynchronizedG<std::pair<T, std::mutex>> : G<std::pair<T, std::mutex>> { void do(std::pair<T, std::mutex> &p){ std::unique_lock lk(p.second); G::</t,></std::pair<t,></std::pair<t,></g></t>…

まだまだ読みたい本いっぱいある……orz

Amazon のほしい物リスト整理\(^o^)/オワタ ほしい物リストに対する検索ができなくて直接指定しないと出てこねー. http://www.amazon.co.jp/gp/registry/wishlist/39V2ZS25M9PVC/ この前の騒動のときに,「今更 Wishlist なんかで騒いでやんのm9(^Д^)プキ…

Why I No Longer Like or Use C++

上を引用しておいて http://prophipsi.blogspot.com/2008/03/why-i-no-longer-like-or-use-c.html そういえば ABI 周りって C++0x 何か進展する見込みってあるっけ? move semantics なんて C++ 以外じゃまず要らんとですよ ま〜,少なくとも move semantics…

A Brief Introduction to Rvalue References

http://www.artima.com/cppsource/rvalue.html

tuple を受けて func(tuple.template get(), tuple.template get(), ...) な構文に forward する

技法思いついて iヽ、 /ヽ、____ _ノ _,.ゝ-=-<、__ フ _____ゝ'" `ヽ _ゝ `γ´ , 、 ヽ\ /! ,.イ /ヽ!、 ノヽ, /_メ」_ ゝ ', ゝ ./ l く i / ハ rト、 V´,. - 、ゝル ヽイ ./ / あたいったら天才ね ,.ヘi`レハ ハイヒ.! / i ヽ、/ / ', ヽ、ノi l " _ ".〈/ ハ /´゙〉 .…

placement insert

http://d.hatena.ne.jp/faith_and_brave/20080310/1205149207 いや,この暗黙の変換ははじかれるべきでしょう. conversion constructor が implicit なのか explicit なのかを識別するのは (concept がないと) 難しいと思うけれど,いずれにせよ, explicit…

concept のメモ

インタフェイス定義としてみたときの concept の特徴 concept の定義ってまんま純粋なインタフェイス記述だけど,他の OO な言語一般におけるインタフェイス定義のあり方から見ると 他のインタフェイスに依存する形のデフォルト実装が書けちゃうもん! conce…

あらやだ, new と auto って一緒に使えるようになる予定なのね

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf auto x = new auto('a'); // allocated type is char, x is of type char* (^o^)キャー

C++とSTLとBoostとC++0xが とくいです / ̄\ | ^o^ | \_/ _| |_ | | / ̄\ | | < それは ぜんぶおなじげんごです \_/ _| |_ | |

>>

そーいやまともに追いかけてなかったんですが,結局右シフト演算子の問題は後方互換性が無い方の解決策で落ち着きそうなんでしょ〜か? (以下は GCC 4.3.0 以降を利用することを前提としたコードです) // test.cpp #include <iostream> template<int I> struct X { static i</int></iostream>…

GCC 4.3.0 リリースキタ━━━━━━(゚∀゚)━━━━━━ !!!!!

ということで, GCC 4.3.0 で実験的に実装された C++0x フィーチャーと,目を離した隙にいつの間にかかなりの部分で総書き換わっちゃっている標準ライブラリについて,実際に GCC 4.3.0 でコンパイルできるコードでもって徹底解剖しちゃうお!

だがしかしちょっと待って欲しい.この娘さんははいてない,というのが通説ではなかったか?

その「同業者かも知れないひとたち」っていうのに自分も多分入ってます.入ってますぅ?いや,この業界意外と広い (ようで狭いようで広いようでやっぱり狭い) ので,「同業」つっても色々あるんですけれど.

Move があっても,やっぱり Placement Construction は要るんじゃね?

なので http://d.hatena.ne.jp/Cryolite/20060728#p1 は取り消し. 現在は, move は placement construction の完全な代替にはなりえないため, move が標準ライブラリに導入されても,同時にライブラリレベルでの placement construction のサポートが望ま…

Placement Construction

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2345.pdf これ (placement insert の提案の元) 読んでも,配列ベースのコンテナ (std::vector/std::deque) については,placement insert と,右辺値で push_back/insert 呼ぶ場合との差異がやっ…

http://d.hatena.ne.jp/Cryolite/20080301#p18 このエントリ書いた子, variadic template の push_back の意味勘違いしとったね. (後ろに可変個数 append するヤツだと思ってた) この push_back って従来の push_back と最後尾への emplace 兼務するのな.

あんまり新しいのを追いかけたら火傷するから,ほどほどに冷めて枯れかけたところでお手軽かつおいしくいただきたいにゃー. しかし,かなりの程度評価の定まった定番と最先端は比較的追いやすい (分量的な意味で実際に追えるかどうかは別ね!) けれど,この…

Lock Free Queue

http://www.nicovideo.jp/watch/sm2415630 http://www.cs.rochester.edu/u/scott/papers/1996_PODC_queues.pdf http://d.hatena.ne.jp/tpro/20080301/1204326030 http://www.research.ibm.com/people/m/michael/podc-2002.pdf とぅーどぅーがまったく消化さ…

うわーん!お星様!お星様!ぜーたくは言わないので,せめてアレとアレとアレとアレとアレとアレだけでも読む時間をくだしあー!

っていうか俺そもそもMINIX本読んだことない……orz

やっぱアレだにゃー.あっち (どっち?) 系の面白そうな記事って,たとえば Haskeナントカでコードが例示されているから,そういうのから面白そうなエッセンス抽出しようと思ったら Haskeナントカとか1通り理解してないと読めないんだよにゃー. 「C 知らな…

ふえぇ…….面白そうなコメントもらっているのに消費税程度の割合しか理解できていないのがすごくかなすぃ……. (「消費税程度」だけに,そのうち理解の割合が10%くらいに増えるかも!)

最新ドラフト通読してたら std::vector (っていうか Sequence) のインタフェースが地味に進化してることにいまさら気が付いて驚いてる人ここに見参. move 対応とか data とか cbegin/cend らへんに気を取られてたーよ. namespace std { template <class T, class Allocator = allocator<T> > class </class>…

自分で自分にツンデレしてもつまんないぃ

↑↑ >3000個の int な std::set だと, std::sort では比較演算が支配的になって いや, std::set で,入っている値が random なら,1,2回の

↑あいや,ちょっと待たれよ.んなことよりなんで destructor も速くなってんのよ? move のおかげで memory fragmentation が抑止されたせいっぽ?

STL Benchmarks with Move Semantics

おー,このベンチマーク比較知らなかった. http://home.twcny.rr.com/hinnant/cpp_extensions/STL_benchmarks.html std::sort/std::rotate がなんで1000倍のオーダーで高速化されとるん? libstdc++ の std::sort/std::rotate って呼ばれる std::swap がコ…

不動点の話で全く関係ないことを思い出した

C++

boost::optional には,コピーコンストラクタと,型 T を持つオブジェクトからの変換コンストラクタがあります. template<class T> class optional{ ... optional(optional const &); optional(T const &); ... }; // class optionalで,昔,この2つのコンストラクタ</class>…

boost::optional に不動点ってないよにぇ?

C++

Twitter にでも書いてろ.な?>俺(AA略