上のエントリ書きながら思ったんだけど、句読点多すぎても読むのにどうも詰まってしまうし、少ないと節が分かりにくくなってしまう。 だから節を入れかえたり、肯定と否定、能動と受動を逆にしたりするんだけど、そうすると、文が表わす事象は同じでも、元の…
(プログラム的な意味での)ある関数fがあったとして、fは内部に何事もなく処理できた場合と、そうでない、例えば引数が間違っているとか、そういう場合の処理があったとして、エラーだからどうしよう、例外でもポイしておきましょう。 function f(x) { if (…
http://atnd.org/events/1839 http://d.hatena.ne.jp/faith_and_brave/20091015/1255594060 http://d.hatena.ne.jp/faith_and_brave/20091016/1255665216 参加しましょう。というか猛烈な速度で参加人数が増えていますが…追記:すごい勢いにつき、あっという…
土曜日は層圏トポス米田フェスティバル@矢上祭(他の人の感想とかはこっち)に参加し、日曜日はあやしげな会合に出席するため、神奈川でお馴染みの横浜に行ってきた。 前と同じように、uskzさんと新大阪に集まることになったが、今回は無事合流できてよかった…
D言語を使って脳内でメタプログラミングして遊んでみる(コンパイルできる環境が手元にないので想像)。本当にただの妄想なので、そこのところは了承してちょんまげ。 template Tuple(xs...) { alias xs Tuple; }いつの間にかPhobosから削除されていたけど、…
ネタ元:http://d.hatena.ne.jp/RiSK/20090930/1254307989 同じ方法でやっても面白くないので、なんか違うアプローチをとってみました。 #include <boost/preprocessor/repetition/repeat.hpp> #include <boost/preprocessor/repetition/repeat_from_to.hpp> #include <boost/preprocessor/seq/size.hpp>#define PAREN_I(z, n, d) BOOST_PP_REPEAT(n, PAREN_II, _) #…</boost/preprocessor/seq/size.hpp></boost/preprocessor/repetition/repeat_from_to.hpp></boost/preprocessor/repetition/repeat.hpp>
ネタ元:http://d.hatena.ne.jp/bleis-tift/20090929/1254185496 #include <boost/preprocessor/arithmetic/inc.hpp> #include <boost/preprocessor/arithmetic/mod.hpp> #include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/control/expr_iif.hpp> #include <boost/preprocessor/control/iif.hpp> #include <…</boost/preprocessor/control/iif.hpp></boost/preprocessor/control/expr_iif.hpp></boost/preprocessor/cat.hpp></boost/preprocessor/arithmetic/mod.hpp></boost/preprocessor/arithmetic/inc.hpp>
今日一人でアヒル見にいってた。 数日前から行こうと考えてて、ようやく重い腰を上げたのが今日の夕方だっただけの話である。電車賃を一番安く上げるため、通勤で使っている定期を使って淀屋橋まで行って、そこから京阪に乗ることにした。車中のお供は、よく…
いとこが来てたので、日曜日にいっしょに新世界を観光した。 新今宮の周辺は大変エキサイティングな町として知られている…けどそっちのほうではなく、まず駅のすぐ近くのスパワールドに行った。駅からだとスパワールドに行くまでに廃墟が存在するので、別に…
人のいないところでマルチキャストしても意味ないけど、 http://atnd.org/events/1048 です!Haskellに興味のある型もない型(←わざと)も、ぜひご覧あれ!
#include <utility> #include <tuple>namespace prefix_op {namespace detail {template<size_t N, typename T> typename std::tuple_element<N, T>::type & get_with_tuple_ref_collapsing(T & tup) { return std::get<N>(tup); } template<size_t N, typename T> typename std::tuple_element<N, T>::type && get_with_tu…</n,></size_t></n></n,></size_t></tuple></utility>
先週の土曜日はわんくま名古屋に行ってきた。 行きは近鉄特急で。乗ったのはアーバンライナーNextで、おばちゃんが多い。安いからいいのだけど、おばちゃんが多い。幸いなことに席が窓際だったので、車窓からの風景を楽しみながらの移動だったが、隣はおばち…
template<int Min, int Max> struct ranged_int { ranged_int() = default; ranged_int(ranged_int const &) = default; template<int N, typename = enable_if<(N >= Min) && (N < Max)>::type> ranged_int(integral_type<int, N>) : n_(N) {}; template<int Min1, int Max1, typename = enable_if<(Min1 >= Min) && (Max1…</int></int,></int></int>
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は…