タグ

C++に関するs-kicのブックマーク (6)

  • Log in with Atlassian account

    We tried to load scripts but something went wrong. Please make sure that your network settings allow you to download scripts from the following domain: https://id-frontend.prod-east.frontend.public.atl-paas.net

    s-kic
    s-kic 2013/12/19
  • partake.in

    This domain may be for sale!

    s-kic
    s-kic 2012/12/13
    Boostアドベントカレンダーでもいけそうな…。
  • C++ Advent Calendar 2012 qiのおはなし - C++黒魔術書の切れ端

    この記事はC++ Advent Calendar 201211日目の記事です。 色々とC++の世界を旅した一年でした。 今年一番使ったを紹介しようと思います。 は古いヘッダなので注意。(新しいバージョンでは削除されていたはず) サンプル上では暗黙に以下の記述があるとします。 #include #include #include namespace bqi=boost::spirit::qi; まずは最小のサンプルで、intをパースする処理を紹介します。 (int main() { int n=0; const std::string str ="2012"; const auto ite = str.begin(); const auto last = str.begin(); if( bqi::parse( ite, last, bqi::int_, n) ) { std::cout 出

    s-kic
    s-kic 2012/12/13
    これは惚れる。
  • C++11 の機能 (Modern C++)

    テーブルの情報にすばやくガイドを次に示します。 rvalue 参照 クラスの初期化 N1610 "ついて rvalue によってオブジェクトが" は rvalue 参照しないで移動セマンティクスを有効にする前の試行はありません。ここでは、これを "rvalue 参照 v0.1 呼び出すします"。はこれが "rvalue 参照 v1.0に置き換えられました"。Visual C++ 2010 の作業に基づいてとおりである "右辺値からバインディング左辺値に" は v2.0、rvalue 参照を禁止します。これにより、主要なセキュリティ問題を修正参照します。"rvalue 参照は v2.1 "この規則を定義します。vector<string>::push_back()、オーバーロード push_back(const string&) と push_back(string&&)場合は v.push

    C++11 の機能 (Modern C++)
  • ADL簡易解説 - Faith and Brave - C++で遊ぼう

    リンクだけだとさみしいので、ADLの簡単な解説を書きます ADL(Argument Dependent name Lookup)とは、引数の型によって呼び出す関数を探索する仕組みです namespace ns { struct hoge {}; void foo(const hoge& h) {} } // namespace ns int main() { ns::hoge h; foo(h); // usingもusing namespaceも使わずにns::fooが呼び出せている! return 0; } 名前空間内の演算子呼び出しは、この仕組みがないとできません (できなくはないけど、==と書く代わりにstd::operator==(...)とか書かないといけない) ADLを回避するには以下のような、特殊な名前空間に隠す方法があります namespace ns { namespac

    ADL簡易解説 - Faith and Brave - C++で遊ぼう
  • 本の虫: ADLへの対処方法

    C++のADLは、時として、意図しない結果を引き起こす。 // フサフサである自分の書いたコード // 独自のコンテナを実装している。 // 表示用のprint()関数は、用意していない。 namespace FusaFusa { template < typename T > class Container {} ; } // 同僚のハゲの書いたコード // コンテナに格納する要素クラスを実装している。 namespace Hage { template < typename T > class Element ; // Elementを表示するための、ジェネリックな関数。 // Fooを引数に取ることを意図していない。 template < typename T > void print(T) {} } // オブジェクトを印刷するための関数。 template < typename

  • 1