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>
出力がちょっとだけホモ・サピエンスに優しい scoped enumeration を定義するだけのカンタンなマクロを作ったような気がする. GCC 4.6.1 -std=c++0x で動いたような気もする. #include <iostream> // 第1引数に enumeration の identifier (enum-name) を // 第2引数</iostream>…
Boost.Build において,各ターゲットの種類に対してビルドプロパティの値が具体的にどのようなコマンドラインオプションに対応するかを, Linux + GCC + GNU Linker の環境において例示するという,私以外の誰も得をしないしそもそも他に理解できる人が居る…
http://cpplover.blogspot.com/2011/07/mutex.html C++ のソースコード中に「途中のreturnや例外に気をつけること」などといったコメントはあってはならないため,補足. // 排他的にアクセスするリソース class exclusive_resource { public : std::vector<int> </int>…
前回の記事:C++0x Memory Model 第0回 - メモリモデルとは何か以下では, C++0x プログラミング言語の標準規格として一貫して N3225 を参照しています.文中で (1.9/12) などという表現が出てきた場合は N3225 における条項を指しています. 太字かつ斜字体…
私は,スカートを履いた女の子に,スカートを履いたままぱんつを脱いで,脱ぎ終わったら右手を挙げるようにと,そう命令した.私は,その子が右手を挙げたのを確かに見た.だが,その子のスカートをめくってみたらぱんつはまだそこにあったのだ! - http://t…
以下のコードでやっていることの説明. EXCEPTION_HOOK((expr))と書いておけば, (expr) という C++ の式を実行したら急に例外が来たので……というときに, call stack のようなもので殴られた跡 (この hook が仕掛けられている場所に関する情報) を boost::e…
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…
http://okajima.air-nifty.com/b/2010/01/post-abc6.html 余計なことして遊んでたらマジで制限時間ギリギリの3時間かかってしまった...orz しかも色々はしょっているわ,出力に S, G が出てないわ... A* で discover されなかったノードに対する情報を…
Boost.Asio はもうちょっと↓みたいに(ry
Boost.Asio はもうちょっと↓みたいに proactor な部分で遊ぶのを前面に押し出してほしい気がします的なっていうかこれさっきゆった. 要 Boost 1.36.0 以上.少なくとも Windows Vista 64bit (ただし WIN32 の configuration でビルド) + MSVC 8.0 では動い…
Boost.Asio はもうちょっと↓みたいに proactor な部分で遊ぶのを前面に押し出してほしい気がします的な. 要 Boost 1.36.0 以上.少なくとも Windows Vista 64bit (ただし WIN32 の configuration でビルド) + MSVC 8.0 では動いたような気がする.改行をコ…
http://d.hatena.ne.jp/gnarl/20080801/1217523822 元のエントリが静的なものと動的なものを比較していますので,それに対する批判としてはまったく正当なものなのでそこには異論はありません.ですが,蛇足として, static duck typing が与えられればそこ…
あああああぁぁぁぁぁもおおおおおちょおおおおお気に入らねえええええぇぇぇぇぇ!!!!! 以下のコードは GCC 4.3.0 以降で -std=c++0x オプションを指定しないとコンパイルが通りません. #include <string> #include <iostream> template<typename T> struct lr_impl{ static int cons</typename></iostream></string>…
Boost 1.35.0 になってビルドの方法が変わってて,単に bjam 動かしただけでは以下の設定しかビルドされにゃい リリースビルドで マルチスレッドで 共有ライブラリで ランタイムを動的リンクする ./configure && make install も同じっぽ? autolink に頼っ…
今一番試してみたいのが lambda expression + typeof.もうこれはヤングなバカに受けナウ間違いなし.
http://d.hatena.ne.jp/faith_and_brave/20080526/1211793189 >曲芸的なアプローチ というのはつまりヒロイン追加のコンシューマ版が発売されて,それがPCに逆移植されて,なおかつクリスマスやらサマーバケーションやらことあるごとに……じゃなかった.今の…
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2645.pdf いや,こういう最も原初的で代数的な concept から組み立てあげる方向性は,まったく間違ってはいないし, STL (によらず汎用プログラミング全般) 的にいって王道的進化だとは思うし,非…
http://www.kmonos.net/wlog/85.html#_0905080505 う〜ん, structural かどうかではなくて non-intrusive かどうかっていう軸の方が重要だと思うんですけれどどうなんでしょうかねー. non-intrusive という言葉を明快に定義してくれている書籍なりサイトな…
なんで requirement に関する推論が欲しくなったかというと,以下のようなのを見てたらうにゅーんっていう. たとえば, // とりあえず細かいことはおいといて,「型 T はデフォルトコンストラクタを持ってる」という制約の記述だと思って! concept Default…
そういえば,ある汎用アルゴリズム (関数テンプレート) の実装が与えられたときに,その汎用アルゴリズムの requirement 項に関する推論機構が欲しいと誰かが (俺かぁ!) ほざいてた気がするけれど, requirement に記述した制約 (インタフェイス) のみを使…
O(1) か O(log N) かよりも leading coefficient の大小のほうが実用的には重要だったりするかも知れない昨今,皆様いかがお過ごしでしょうか?それはさておきまして誰か splice の使い方を列挙しまくって std::list の不憫な立場をなんとかしてやってくだし…
Haskell に type class が導入されている motivation についてまとまってるサイトにゃいかにゃー. Haskell の type class を通して C++ の concept を見てみたいの会.あと, C++0x の concept で functional dependency が手軽に扱えそうか/有用そうかどう…
http://d.hatena.ne.jp/NyaRuRu/20080328/p1 (C++[0x] の言葉でいうところの) concept-based overload と,関数テンプレートの partial ordering が混ざった話だけれど, concept-based overload に関しては >まあ使い道がそんなに沢山あるかというとそこは…
昨日の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)>…
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++ において class は open か closed か.自分は「generic programming の文脈では限定的ながら open であるといってしかるべき」と思うのだけれど.思っただけ. C++ の class には associated namespace というものがあって,そこには class の public …
http://d.hatena.ne.jp/Cryolite/20080318#p2 concept maps で追加・置換できるのは良いけれど,少なくともシグネチャ (関数名含む) に関するパタンマッチ的なことぐらいはできないと AOP とはいえないでゲソ. っていうか, identifier をメタプログラミン…
lambda expression が std::reference_closure という形で実装可能なのは郵便はみがきさんが書いていらっしゃるとおりですけれど, std::reference_closure の形式よる実装が可能 (つまりシグネチャが同一の lambda expression は同じ型を持つ) ということは…
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)…