Recursive Function Template Instantiation and New Function Declarator Syntax

C++

以下のコードは ill-formed である.その理由を述べなさい. void f() {} template<typename T, typename... Types> auto f(T &&, Types &&... args) -> decltype(f(args...)) { return f(args...); } int main() { f(0, 1); }</typename>

最近の tar には a (--auto-compress) オプションなるものが追加されたために人類の生産性がおよそ1%程度(当社比)向上する.

$ mkdir test $ tar cavf test.tar.gz test test/ $ file test.tar.gz test.tar.gz: gzip compressed data, from Unix, last modified: Thu Mar 29 10:46:53 2012 $ rmdir test/ $ tar xavf test.tar.gz test/ $ mkdir test $ tar cavf test.tar.bz2 test te…

GNU coreutils の sort のバージョンが古いために -V (--version-sort) オプションが無いという悲しみの中で,それでも僕たちは前を向いて強く生きていかないといけない.

http://linux.die.net/man/1/sort に記述されている -V (--version-sort) オプションに縋って生きてきた僕たちは,ある日,別の環境でこのオプションが使えないことを知って絶望の奈落へと突き落とされる. http://stackoverflow.com/questions/4493205/unix…

Defining Scoped Enumerations with Human-readable Outputs

出力がちょっとだけホモ・サピエンスに優しい scoped enumeration を定義するだけのカンタンなマクロを作ったような気がする. GCC 4.6.1 -std=c++0x で動いたような気もする. #include <iostream> // 第1引数に enumeration の identifier (enum-name) を // 第2引数</iostream>…

Boost.Build @ Linux + GCC + GNU Linker

Boost.Build において,各ターゲットの種類に対してビルドプロパティの値が具体的にどのようなコマンドラインオプションに対応するかを, Linux + GCC + GNU Linker の環境において例示するという,私以外の誰も得をしないしそもそも他に理解できる人が居る…

C++0x の std::unique_lock - std::defer_lock と std::adopt_lock でちょっと高度なロック管理

http://cpplover.blogspot.com/2011/07/mutex.html C++ のソースコード中に「途中のreturnや例外に気をつけること」などといったコメントはあってはならないため,補足. // 排他的にアクセスするリソース class exclusive_resource { public : std::vector<int> </int>…

C++0x Memory Model 第1回 - 1.9 Program execution

前回の記事:C++0x Memory Model 第0回 - メモリモデルとは何か以下では, C++0x プログラミング言語の標準規格として一貫して N3225 を参照しています.文中で (1.9/12) などという表現が出てきた場合は N3225 における条項を指しています. 太字かつ斜字体…

C++0x Memory Model 第0回 - メモリモデルとは何か

私は,スカートを履いた女の子に,スカートを履いたままぱんつを脱いで,脱ぎ終わったら右手を挙げるようにと,そう命令した.私は,その子が右手を挙げたのを確かに見た.だが,その子のスカートをめくってみたらぱんつはまだそこにあったのだ! - http://t…

任意の expression に透過的に hook を仕掛けるようなマクロが書けるのではありませぬか?

以下のコードでやっていることの説明. EXCEPTION_HOOK((expr))と書いておけば, (expr) という C++ の式を実行したら急に例外が来たので……というときに, call stack のようなもので殴られた跡 (この hook が仕掛けられている場所に関する情報) を boost::e…

GCC 4.5 の半分は C++03 へのやさしさでできています

When printing the name of a class template specialization, G++ will now omit any template arguments which match the default template argument for that parameter. This behavior (and the pretty-printing of function template specializations a…

A*

http://okajima.air-nifty.com/b/2010/01/post-abc6.html 余計なことして遊んでたらマジで制限時間ギリギリの3時間かかってしまった...orz しかも色々はしょっているわ,出力に S, G が出てないわ... A* で discover されなかったノードに対する情報を…

C++0x ad-hoc 会議行てきた.\(^o^)/会議本体のほうの内容は誰か書いてくれるだろう的な他力本願で.以下は完全に個人的な内容.昼の休憩になった途端,真っ先に名刺くれる方がいらっしゃって,名刺見たらサイボウズ・ラボの光成滋生って書いてあって,そ…

ぷろあくた\(^o^)/ ぱ〜とすりぃ〜

Boost.Asio はもうちょっと↓みたいに(ry

ぷろあくた\(^o^)/ ぱ〜とつぅ〜

Boost.Asio はもうちょっと↓みたいに proactor な部分で遊ぶのを前面に押し出してほしい気がします的なっていうかこれさっきゆった. 要 Boost 1.36.0 以上.少なくとも Windows Vista 64bit (ただし WIN32 の configuration でビルド) + MSVC 8.0 では動い…

ぷろあくた\(^o^)/

Boost.Asio はもうちょっと↓みたいに proactor な部分で遊ぶのを前面に押し出してほしい気がします的な. 要 Boost 1.36.0 以上.少なくとも Windows Vista 64bit (ただし WIN32 の configuration でビルド) + MSVC 8.0 では動いたような気がする.改行をコ…

それ (dynamic duck typing) C++ でできるよ +α

C++

http://d.hatena.ne.jp/gnarl/20080801/1217523822 元のエントリが静的なものと動的なものを比較していますので,それに対する批判としてはまったく正当なものなのでそこには異論はありません.ですが,蛇足として, static duck typing が与えられればそこ…

Windows で Boost 1.35.0 をビルドするためのいろはにほへとちりぬるを1から10まで書こうとしたらなんか収拾がつかなくなったっぽ.

X / _ / X < "むぅぶせまんちくす!";

あああああぁぁぁぁぁもおおおおおちょおおおおお気に入らねえええええぇぇぇぇぇ!!!!! 以下のコードは GCC 4.3.0 以降で -std=c++0x オプションを指定しないとコンパイルが通りません. #include <string> #include <iostream> template<typename T> struct lr_impl{ static int cons</typename></iostream></string>…

多項展開が倒せない

多項展開 が倒せない.っていうか実際にやりたいのは の計算にゃんだけれど. #これだけだと何がしたいのかがさっぱり伝わらないだろ……jk これを愚直に計算すると明らかに で,これがもうちょっとだけ速くなりませんか的な.一応, が sparse, つまり が …

http://blog14.fc2.com/b/bountyhunter02/file/sort140.html 1 浅野真澄 2 落合祐里香 3 後藤邑子 3 沢城みゆき 5 水樹奈々 6 水橋かおり 7 中原麻衣 8 桑島法子 9 今井麻美 9 植田佳奈 (以下略 あぁ……うん……まぁ…….マイナーメジャー大好きって表現すれば…

いぇっとあなざビルド済みぶぅすとらいぶりゃり

Boost の Jamroot でやっていることと http://tinyurl.com/5towdt でやっていることをパクっただけといううわさ.っていうか, http://tinyurl.com/66fv37 でいーじゃーんという声はあーあーあー聞こえない.

Boost 1.35.0 のビルドのバッドノウハウ

Boost 1.35.0 になってビルドの方法が変わってて,単に bjam 動かしただけでは以下の設定しかビルドされにゃい リリースビルドで マルチスレッドで 共有ライブラリで ランタイムを動的リンクする ./configure && make install も同じっぽ? autolink に頼っ…

いや,そんなことよりも lambda expression + typeof

今一番試してみたいのが lambda expression + typeof.もうこれはヤングなバカに受けナウ間違いなし.

Multiple Placement Construction

http://d.hatena.ne.jp/faith_and_brave/20080526/1211793189 >曲芸的なアプローチ というのはつまりヒロイン追加のコンシューマ版が発売されて,それがPCに逆移植されて,なおかつクリスマスやらサマーバケーションやらことあるごとに……じゃなかった.今の…

文字列は文字列の連結という2項演算に関して semigroup ですよ.あー,いや, monoid か……なんていちいち考えるっぽ?

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2645.pdf いや,こういう最も原初的で代数的な concept から組み立てあげる方向性は,まったく間違ってはいないし, STL (によらず汎用プログラミング全般) 的にいって王道的進化だとは思うし,非…

structual よりも non-intrusive だと思うにゃー

http://www.kmonos.net/wlog/85.html#_0905080505 う〜ん, structural かどうかではなくて non-intrusive かどうかっていう軸の方が重要だと思うんですけれどどうなんでしょうかねー. non-intrusive という言葉を明快に定義してくれている書籍なりサイトな…

The Art of Computer Programming, Fascicle

1, 2, 3, 4と来て次が0なのかよおおおおおぉぉぉぉぉ!!!!!

なんで requirement に関する推論が欲しくなったかというと,以下のようなのを見てたらうにゅーんっていう. たとえば, // とりあえず細かいことはおいといて,「型 T はデフォルトコンストラクタを持ってる」という制約の記述だと思って! concept Default…

もうなんかかれこれ2ヶ月ぐらい SBPP 読破するつもりでいたけれど読んでも読んでもまったく頭に入らないので, TDD 読み始めたけれどやっぱりまったく頭に入ってこないいいぃぃぃ.っていうか Kent Beck の英語読みにくい……いや,英語読みにくいだけじゃない…

そういえば,ある汎用アルゴリズム (関数テンプレート) の実装が与えられたときに,その汎用アルゴリズムの requirement 項に関する推論機構が欲しいと誰かが (俺かぁ!) ほざいてた気がするけれど, requirement に記述した制約 (インタフェイス) のみを使…