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)とか書いてあると…

ターヘル・アナトリア(東京見聞録)2

しばらくすると、めるぽんさんが来た。そういえば指定されたのは確か階段降りたところだっけ…また間違えたのか…なんかもう自分がどうしようもない。階段を降りると、id:wraith13 の道化師さんと、 片手にC++ Templatesを提げた id:uskz さんがおられた…なん…

ターヘル・アナトリア(東京見聞録)1

あまりにも長くなりそうなので適当に投下。 まずuskzさんと合流できなかった。待たせてしまった上に結局現れられなくてほんとうに申し訳ないです… とりあえず新大阪駅近くのネカフェに入り、twitterにて id:melpon さんに相談に乗っていただき、夕方、委員会…

東京に行ってきます

なんかFLTVというイベントがあるので参加するために東へ旅立ちます。と言ってもこれは日曜日ですが…いつの間にやら話の流れで土曜日に行ってお台場ガンダムを見物することになりました。id:uskzさんid:melponさんお世話になります… 新幹線は初めてなので、振…

tieで初期化させろ

#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>

Boost.Lambdaでletとかwhereを書かせろ

#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 specialization

C++

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>

多相型ラムダ作ろうとして肝心なことに気付いてやめるまでのメモ書きそのまま公開

C++

あと http://d.hatena.ne.jp/DigitalGhost/20090216/1234793120 は0引数のとき対応できない。だからポインタを作ってというのもあるのかも知れない…ダミーパラメータで0とか付ければなんとかなるか…あーそうか、typeof(a)とか型定義の中だとaが見えないから…

decltypeが括弧あるとかないとかで色々

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 アクセルシューターをミサイル代わりに撃つなのはさん、ディバインバス…

久しぶりにtrunkをビルドしてみる

備忘録。 ビルドしてみるとlibnotifyくれくれって言われたのでapt-get install libnotify-devした。 あとなんかwifiとかいらんから--disable-necko-wifiとかもした。 終わり。こんな短い日記久しぶり。と思ったけどそうでもなかった。

プリプロセッサで代入しましょう!

さて今回は代入です。とはいっても関数マクロを展開中に代入とかは無理です。なので、#defineで、プリプロセスシンボルに代入しましょう。 あともうかなりめんどいので超展開で話が進みます。 #define A 1 #define B A #undef A #define A 2 B 最後の行のBは…

Conceptのお通夜会場はこちらです

まさかのご臨終…

本を積んでみた

http://d.hatena.ne.jp/RiSK/20090709/1247119159 その他みなさん 私も参加。写真機を持っていないので念写した。でもあんまり本ないなぁ…

それと忘れてたけど

私の日記にスターを付けたいという奇特な人達が2, 3名に達したので、今更ながらスター設置してみた。ついでにブクマボタンも設置してみた。

はてなスターに付いてるコメント部分の装飾をいじるためのスタイルシート

CSS

どこかにあってもいいと思うんだけど、無かった。なんで見つからんのや…というわけで作った。 /* はてなスターのコメント */ [style^="border: 1px solid rgb(187, 187, 187);"] { background-color : #dfe !important; color : #131 !important; border-sty…

わんくま勉強会 in 大阪にいってきた

わんくま勉強会大阪に行ってきた。 とりあえず昼食のとき名乗り遅れてすみません… > melponさん Cryoliteさん こういう場には参加したことがなかったのでどんな勝手なんだろうかと思ったら特に勝手もなにもなかった。何もないことはいいことだ。 内容とかは…

プリプロセッサでループしましょう!

みなさんいかがお過ごしでしょうか?前回は足し算しました。今回はループです。 足し算ではとにかくいっぱいPP_ADD_Iを並べましたが、もっとスタイリッシュに書きたいですね。書きましょう。 まずC/C++のループはこんな感じです: while (condition) { ... }…

プリプロセッサで足し算しましょう!

プリプロセッサは所詮文字列置換、計算なんてできやしない…そう思っている方は多いでしょう。しかしそれは違います。計算できます。 本日の目的はプリプロセッサで足し算です。ADD(3, 2)と書けば5と答えてくれる関数マクロを作ってみましょう。 おっと、#def…

そろそろれいがいさんへの思いを適当にまとめる

関数が何であるかを決めないとエラーが何であるかを決められない エラーは例外以外でも表現できる エラーのときは関数終了してエラーを通知する エラーを例外で通知する場合は、とりあえず今知ってることを適切な型の値として投げる(多分適切な型ってのがア…

REIGAI REIGAIせよ!

昨日のカオスの続き。 例外は「エラーを取り扱う手段の一つ」として考案されたもので、それ以外を扱うのはマナー違反。よって例外を投げることはエラーであることを上位レイヤーに報告するものであるが、エラー自体は必ずしも例外ではない(ほかにも手段はあ…

れいがい!

例外むずい。むずいから考える。考えても全然文章にならないので言葉の断片を並べる。以下ではレイヤーとスコープはだいたい同義だと思う。 例外はいつ使うべきなのか? エラーであることの表現として使うとすると、あるレイヤーで、そのレイヤーから分かる…

有向グラフのあるノードからあるノードへの全てのパスを表現する

いつまでたってもまとまらないので落書き程度で適当に書く。 有向グラフから圏Cを作る 作り方は http://d.hatena.ne.jp/m-hiyama/20090525/1243210967 ここで、 length([a, f1, f2..., fn, b]) = n + 2 とする。 Cの射の集合を射とする圏C'を作る a, b, cをC…

nullを許容しないスマポ

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>…

はからずも一人暮らしがはじまることになったので何かアドバイスください

ください。