2008-03-01から1ヶ月間の記事一覧

concept-based overload の使い道はそれこそいくらでも……

http://d.hatena.ne.jp/NyaRuRu/20080328/p1 (C++[0x] の言葉でいうところの) concept-based overload と,関数テンプレートの partial ordering が混ざった話だけれど, concept-based overload に関しては >まあ使い道がそんなに沢山あるかというとそこは…

Re: std::reference_closure の存在意義

昨日のk.inabaさんのコメントにいったん納得しかけたけれど void funcWithCallback(std::reference_closure<int(int)> const &f); // 定義は別のバイナリにある void g() { int i = 42; funcWithCallback([&](int j){ return i * j; }); } これが std::reference_closu</int(int)>…

"Design Patterns in C++," articles in TopCoder

C++

http://www.topcoder.com/tc?module=Static&d1=features&d2=100206 http://www.topcoder.com/tc?module=Static&d1=features&d2=100906 これは良い article.ただ, "non-intrusive" とか "type erasure" とかいう keyword を含んだ article なら,どんな art…

_, ,_ ∩ ( ゜∀゜)彡 びゃーね!びゃーね!助けてびゃーね! ⊂彡#いや,もう C++ は「Bjarne Stroustrup の言語」ではなくなってるってばよ.

generic programming の文脈では C++ のクラスは限定的に open だよ?

C++

C++ において class は open か closed か.自分は「generic programming の文脈では限定的ながら open であるといってしかるべき」と思うのだけれど.思っただけ. C++ の class には associated namespace というものがあって,そこには class の public …

シグネチャに対するパタンマッチぐらいはないと AOP とはいえないんじゃなイカ?

http://d.hatena.ne.jp/Cryolite/20080318#p2 concept maps で追加・置換できるのは良いけれど,少なくともシグネチャ (関数名含む) に関するパタンマッチ的なことぐらいはできないと AOP とはいえないでゲソ. っていうか, identifier をメタプログラミン…

std::reference_closure の存在意義がやっぱりよくわからにゃいにゃー

lambda expression が std::reference_closure という形で実装可能なのは郵便はみがきさんが書いていらっしゃるとおりですけれど, std::reference_closure の形式よる実装が可能 (つまりシグネチャが同一の lambda expression は同じ型を持つ) ということは…

参照経由のみで環境にアクセスする lambda expression がなんで reference_closure 型にならなあかんねん

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2550.pdf ローカルの変数の値を全部参照で読み書きするならば, 8 If every name in the effective capture set is preceded by &, F is publicly derived from std::reference_closure (20.5.17)…

晴れ時々 Amazon.co.jp の洋書価格が変

(このブログエントリの内容は,執筆時点での情報に基づいています.執筆から時間が経過するに伴い,特にリンク先における情報が変更されるなどの変化により,内容に何らかの不整合を生じる可能性があります) Amazon.co.jp で洋書を買うときには, Amazon.com…

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 知らな…