2009-01-01から1年間の記事一覧
http://twitter.com/pororocakka/status/3726553400 モーメント回転寿司 モーメント回転寿司(Momental Sushi Circular Comveying System. 「MSCCS」や「M-スシシースー」とも呼ばれる)とは、回転軸を持つ筒状の物体の内壁部分にコンベアを設置し、その軸を…
みなさまいかがお過ごしでしょうか?さて、今日のテーマは「再帰」です。プリプロセッサでは再帰が扱えないので、例えば、 #define PP_APPLY(f, x) f(x) #define HOGE(x) PP_APPLY(PIYO, x)という定義があったとして、 PP_APPLY(HOGE, FUGA)とか書いてあると…
しばらくすると、めるぽんさんが来た。そういえば指定されたのは確か階段降りたところだっけ…また間違えたのか…なんかもう自分がどうしようもない。階段を降りると、id:wraith13 の道化師さんと、 片手にC++ Templatesを提げた id:uskz さんがおられた…なん…
あまりにも長くなりそうなので適当に投下。 まずuskzさんと合流できなかった。待たせてしまった上に結局現れられなくてほんとうに申し訳ないです… とりあえず新大阪駅近くのネカフェに入り、twitterにて id:melpon さんに相談に乗っていただき、夕方、委員会…
なんかFLTVというイベントがあるので参加するために東へ旅立ちます。と言ってもこれは日曜日ですが…いつの間にやら話の流れで土曜日に行ってお台場ガンダムを見物することになりました。id:uskzさんid:melponさんお世話になります… 新幹線は初めてなので、振…
#include <boost/preprocessor/tuple/elem.hpp> #include <boost/preprocessor/tuple/rem.hpp> #include <boost/preprocessor/seq/fold_left.hpp> #include <boost/preprocessor/arithmetic/inc.hpp>template<size_t N, typename T> typename std::tuple_element<N, T>::type & get_with_tuple_ref_collapsing(T & tup) { r…</n,></size_t></boost/preprocessor/arithmetic/inc.hpp></boost/preprocessor/seq/fold_left.hpp></boost/preprocessor/tuple/rem.hpp></boost/preprocessor/tuple/elem.hpp>
#define LET(var) [&] { var IN #define IN(body) return body; }() #define LAMBDA(def) [&] { LAMBDA_WHERE(LAMBDA_WHERE_I def) return LAMBDA_BODY def )); }() #define LAMBDA_WHERE_I(body) LAMBDA_WHERE_II #define LAMBDA_WHERE_II(where) NIL where…
template<typename T> struct a { template<typename U> struct b { template<typename V> void f(V) {} template<> void f<int>(int) {} }; template<typename U> struct b<U*> { int x; }; }; void f() { a<int>::b<int*> y; y.x; a<int>::b<int> z; z.f(1); }特殊化は定義したスコープでも書けるのか…</int></int></int*></int></u*></typename></int></typename></typename></typename>
あと http://d.hatena.ne.jp/DigitalGhost/20090216/1234793120 は0引数のとき対応できない。だからポインタを作ってというのもあるのかも知れない…ダミーパラメータで0とか付ければなんとかなるか…あーそうか、typeof(a)とか型定義の中だとaが見えないから…
n2914 7.1.6.2.4 The type denoted by decltype(e) is defined as follows: if e is an unparenthesized id-expression or a class member access (5.2.5), decltype(e) is the type of the entity named by e. If there is no such entity, or if e names a…
前回 : http://d.hatena.ne.jp/DigitalGhost/20090809/1249846726 ふむ、前に書き散らかしたときよりは随分まとまっている気がする。ええこっちゃええこっちゃ。 で、多重継承ではなんとなーくうまくいかないような気分でいると、これまたなんとなーく文字…
追記: ここで言う「エラー」「エラー処理」は、「例外」「例外ハンドリング」と置き換えて読んでください。 あと元ネタへのリンク http://d.hatena.ne.jp/bleis-tift/20090809/1249825777 と、この記事が踏まえている話 http://d.hatena.ne.jp/DigitalGhost…
現在ついたにアクセスできない 追記: Twitter tanks on Thursday morning ということで、どうやら私だけではなかったようだ。 追記2: 未だ戦闘中。 Twitter Status - Ongoing denial-of-service attack がんばれ!超がんばれtwitter!
C++でDとかC#のデリゲートっぽい物体自動生成機を書こうとしたけど id:xyuyux さんが既に完成させはったということで、私は副産物でも。 http://codepad.org/ZECUiV5V (OPEN から END) まで、括弧がバランスなら何書いても引数に取って展開できるマクロの仕…
PSPでベルカ戦争、はじめました これは…! バンナムか…どうしてタイトルが「リリカルなのはACE COMBAT」ではないのか問い詰めたい http://twitter.com/DecimalBloat/status/2925059800 アクセルシューターをミサイル代わりに撃つなのはさん、ディバインバス…
備忘録。 ビルドしてみるとlibnotifyくれくれって言われたのでapt-get install libnotify-devした。 あとなんかwifiとかいらんから--disable-necko-wifiとかもした。 終わり。こんな短い日記久しぶり。と思ったけどそうでもなかった。
さて今回は代入です。とはいっても関数マクロを展開中に代入とかは無理です。なので、#defineで、プリプロセスシンボルに代入しましょう。 あともうかなりめんどいので超展開で話が進みます。 #define A 1 #define B A #undef A #define A 2 B 最後の行のBは…
まさかのご臨終…
http://d.hatena.ne.jp/RiSK/20090709/1247119159 その他みなさん 私も参加。写真機を持っていないので念写した。でもあんまり本ないなぁ…
私の日記にスターを付けたいという奇特な人達が2, 3名に達したので、今更ながらスター設置してみた。ついでにブクマボタンも設置してみた。
どこかにあってもいいと思うんだけど、無かった。なんで見つからんのや…というわけで作った。 /* はてなスターのコメント */ [style^="border: 1px solid rgb(187, 187, 187);"] { background-color : #dfe !important; color : #131 !important; border-sty…
わんくま勉強会大阪に行ってきた。 とりあえず昼食のとき名乗り遅れてすみません… > melponさん Cryoliteさん こういう場には参加したことがなかったのでどんな勝手なんだろうかと思ったら特に勝手もなにもなかった。何もないことはいいことだ。 内容とかは…
みなさんいかがお過ごしでしょうか?前回は足し算しました。今回はループです。 足し算ではとにかくいっぱいPP_ADD_Iを並べましたが、もっとスタイリッシュに書きたいですね。書きましょう。 まずC/C++のループはこんな感じです: while (condition) { ... }…
プリプロセッサは所詮文字列置換、計算なんてできやしない…そう思っている方は多いでしょう。しかしそれは違います。計算できます。 本日の目的はプリプロセッサで足し算です。ADD(3, 2)と書けば5と答えてくれる関数マクロを作ってみましょう。 おっと、#def…
関数が何であるかを決めないとエラーが何であるかを決められない エラーは例外以外でも表現できる エラーのときは関数終了してエラーを通知する エラーを例外で通知する場合は、とりあえず今知ってることを適切な型の値として投げる(多分適切な型ってのがア…
昨日のカオスの続き。 例外は「エラーを取り扱う手段の一つ」として考案されたもので、それ以外を扱うのはマナー違反。よって例外を投げることはエラーであることを上位レイヤーに報告するものであるが、エラー自体は必ずしも例外ではない(ほかにも手段はあ…
例外むずい。むずいから考える。考えても全然文章にならないので言葉の断片を並べる。以下ではレイヤーとスコープはだいたい同義だと思う。 例外はいつ使うべきなのか? エラーであることの表現として使うとすると、あるレイヤーで、そのレイヤーから分かる…
いつまでたってもまとまらないので落書き程度で適当に書く。 有向グラフから圏Cを作る 作り方は http://d.hatena.ne.jp/m-hiyama/20090525/1243210967 ここで、 length([a, f1, f2..., fn, b]) = n + 2 とする。 Cの射の集合を射とする圏C'を作る a, b, cをC…
template<typename T> struct smart_ptr { ... explicit smart_ptr(T * ptr) : ptr_(ptr) {} template<typename U> smart_ptr(smart_ptr<U> const & other) : ptr_(other.get()) {} smart_ptr & operator=(T * ptr) { ptr_ = ptr; ... return *this; } template<typename U> smart_ptr & operator=(s</typename></u></typename></typename>…
ください。