タグ

関連タグで絞り込む (248)

タグの絞り込みを解除

c++に関するmogwaingのブックマーク (355)

  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

    mogwaing
    mogwaing 2011/09/13
    日本語訳
  • 並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行で、全体の約半分を占めています。 並列イベント駆動I/Oフレームワーク「mpio」リリース ネットワークアプリケーションを実装する上で、もっとも大きな障壁は、ネットワークI/Oとプロトコルです。 では、それが両方ともフレームワークでサポートされ、コードを書く必要が無くなったらどうでしょうか? 54行で簡単な分散KVSを実装したり、140行で分散リアルタイム検索エンジンを実装することができます。すなわち、インデックス作成サーバ、検索サーバ、DBサーバなど、多数のサーバが連携し、スケールアウトの恩恵を得ることができるネットワークアプリケーションを、1台のホスト上で動作する並列アプリケーションとほぼ同じように書くことができます。 実装上の問題から解放されれば、並列性や耐障害

    並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi
  • STL風に使えるマップ型コンテナの紹介と性能比較 - Preferred Networks Research & Development

    最近スマートフォンに乗り換えました。徳永です。 C++は世に数あるプログラミング言語の中では比較的メモリをわない方ですが、それでもメモリ使用量が問題となる場合はあります。そのような場合の対処方法はいくつか有りますが、手軽に選択できる方法として、今日はSTLのmapやunordered_mapと同じ感じで使えるデータ構造をいくつか紹介したい思います。 以下、計算量の表記をする際には、要素数をnとします。 Loki::AssocVector LokiはModern C++ Designというの作者であるAndrei Alexandrescuが開発したライブラリです。AssocVectorはその中の一つとして提供されているクラスで、vector<pair<key, value> >という型のベクターをkeyでソートした状態で持つ事により、二分探索による要素の探索を可能にしたデータ構造です。こ

  • Google の言語テスト、勝者は C\+\+ - スラッシュドット・ジャパン

  • 例外処理のオーバーヘッド

    「例外が発生しなければ例外コストなんて無いじゃん」 という僕の意見が勉強会で数名の方からエライ否定的に言われたので非常に気分が悪いw C++のみだけど検証させていただきました。 尚、使用したコンパイラはVC9でコンパイルオプションは cl /Ox /EHsc /Fa です。 まず何かの処理をNULLチェックで書いてみます。 void null_check() { void*    p = func1(); if(p) { p = func2(p); if(p) { p = func3(p); } } } これを例外処理で書いたコードは以下のものです。 void with_try_catch() { try { void*    p = func1(); p = func2(p); p = func3(p); } catch(...) { exception_sequence(); } }

  • a Unit Testing Framework for C and C++ - Cutter

    The latest release 1.2.7 is the latest release. It had been released at 2019-09-13. [Download] [Changes] Cutter? Cutter is a Unit Testing Framework for C and C++. Cutter's interface is easy to write, easy to debug your code and fun to run tests. (See the screenshot. You need "notify-send" command on Linux and *BSD or "growlnotify" command on macOS for this feature.) Platform Cutter works on many U

  • ZeroMQ

    Why ZeroMQ? ZeroMQ (also known as ØMQ, 0MQ, or zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fan-out, pub-sub, task distribution, and request-reply. It's fast enough to be the fabric

  • C++で例外を使ったプログラムをうまく書くにはどうすればいいのか - 射撃しつつ前転 改

    C++とはできるだけ離れた人生を送りたいと願ってきた。しかし、なかなかそうもいかず、最近はだんだんとC++の知識を学びつつある。今更C++を勉強するなんてちょっと出遅れすぎてるんじゃないかという気もするが、もうすぐ新規格であるC++0xもリリースされるはずであるし、意外とC++を学ぶにはいいタイミングかもしれない。 プログラムの品質はエラー処理をどこまで丁寧に書くかで決まる。エラー処理の書き方には、 エラーコードを返す(エラーコードを返せるように設計しておく) エラー時に例外を投げる の2種類があるが、今悩んでいるのはそのC++の例外についてである。 例えば、機械学習のツールを書くことを考える。このようなツールではデータをパースする部分を書く必要が出てくるだろう。1行に1つのデータが以下のような形式で書かれているものをパースしたい。 1 2:1 4:2 5:1 このデータをパースするコード

    C++で例外を使ったプログラムをうまく書くにはどうすればいいのか - 射撃しつつ前転 改
  • STL mapをvalueでソートする方法

    質問 2007年5月28日月曜日 17:04 mapをvalueでソートする方法を探しています。 例えば、 map<long, long> 100,  1 200,  3 300,  2 というデータがあった場合に、valueで昇順ソートして 100,  1 300,  2 200,  3 の順番で取得したいのですが、どうしてよいのか困っています。 自分なりに調べて、ソートする内容を定義できる temlpate<class RandomAccessIterator, class Compare> void sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp); が使えるのではないかと思ったのですが、これをどう使っていいのか分かりませんでした・・・。 どなたか、mapをvalueでソートする方法をご

    STL mapをvalueでソートする方法
    mogwaing
    mogwaing 2010/02/26
    sort by value for std::map
  • Boost.勉強会のまとめとか感想とか今後についてとか - Faith and Brave - C++で遊ぼう

    Boost.勉強会 - ATND 12/12(土)にグリー株式会社様のセミナー会場をお借りして Boost.勉強会を開催しました。id:sotarokさんありがとうございました! 【発表のまとめと感想】 ・Boostライブラリ 一周の旅(id:faith_and_brave, @cpp_akira) Boost 1.40.0に含まれるライブラリのうち、74ライブラリを紹介し、 それに加えて「一分でわかるテンプレートメタプログラミング」というのを話しました。 (1分以内には終わらなかったのと、もうちょっとじっくりやりたかったです。) 今回の勉強会ではじめてBoostを知った、という方にはBoostを使い始めるきっかけと なっていただければ幸いです。 反省点としては、1時間セッションの予定が気づいたら40分もオーバーしてしまっていたことですね。 解説するライブラリが74個もあったというのはあり

    Boost.勉強会のまとめとか感想とか今後についてとか - Faith and Brave - C++で遊ぼう
  • Boost.勉強会 - YAMAGUCHI::weblog

    久々に毛色の違う勉強会に参加してきました。 Boost.勉強会 : ATND 途中までしか参加できませんでしたが、とても有意義な勉強会でした。C++を自前でごりごり書いていたことを思い出すと、もはやBoost使えば大抵のことはぐっと楽になるなあという印象を強烈に受けた半日でした。 10:10-11:40 Boostライブラリ一周の旅 アキラさん(id:faith_and_brave)の発表。Boost 1.4の全74ライブラリを紹介。 各ライブラリ紹介 スライドのタイトル。紹介中のコメントもたまにメモ。 Accumulators : 統計計算フレームワーク Any : あらゆる型を保持できる動的型 Array : 配列(コンテナのインタフェースが使える)。組み込み配列の代わりとして使うと便利。次期標準ライブラリの予定。 Asio : 非同期ネットワークライブラリ。IPv6対応。 Assig

    Boost.勉強会 - YAMAGUCHI::weblog
  • 微分積分

    mogwaing
    mogwaing 2009/05/25
    make_heap
  • std::push_heap

    template <class RandomAccessIterator> void push_heap (RandomAccessIterator first, RandomAccessIterator last); template <class RandomAccessIterator, class Compare> void push_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp); Given a heap in the range [first,last-1), this function extends the range considered a heap to [first,last) by placing the value in (last-1) into its c

  • make_heap

  • About libjingle - Google Talk for Developers - Google Code

    About libjingle libjingle is a collection of open-source C++ code and sample applications that enables you to build a peer-to-peer application. The code handles creating a network connection (through NAT and firewall devices, relay servers, and proxies), negotiating session details (codecs, formats, etc.), and exchanging data. It also provides helper tasks such as parsing XML, and handling network

  • yebo blog: Google GFSライクなグローバルファイルシステムKFS

    2007/10/16 Google GFSライクなグローバルファイルシステムKFS Skrentablogによると、Googleの検索技術を支える根幹技術Google File Systemがある。構造の概略は論文になっているが、Linux上に実装されているといっても、そのソースコードは公開されておらずプロプライアタリになっている(GFSを他に公開するとは思えないが)。そこで、Google File SystemGoogle Map ReduceをJavaで実装しようというプロジェクトがApache内にあり、Hadoopの開発を進めている(HDFS: Hadoop Distributed FilesystemMapReduceの実装が進んでいる)。また、これをベースにKosmix社がKFSというファイルシステムをApache Licenseで公開しているとか。KFSは現在アルファリリ

  • C++で開発

    [ Home on 246net ] C++で開発 好むと好まざるとに関わらず、C++言語を使った開発をすることになったときに調べたことの蓄積。 言語仕様 ブートストラップ main関数 main関数について パッケージ管理 名前空間 名前空間の使用 ヘッダファイル ヘッダファイルとは インクルードガード ヘッダファイルの依存性をなくすには 文法要素 プリプロセッサ 条件コンパイル 可変引数を取る関数(stdargs他) 定義済みマクロ 型 組み込み型 標準定義型(標準typedef等) ビットサイズ固定整数型、 typedefの注意 クラス コンストラクタ メンバー変数 演算子関数 ビットフィールド 継承 例外 標準例外 例外処理のプログラミング テンプレート メンバ関数の特殊化 デバッグ アサーション ANSI Cのassert VC++固有のassert コーディング標準 公知のコー

    mogwaing
    mogwaing 2009/05/11
    \
  • C++ のプログラムのデバッグを楽にする方法

    メディア関係者向けお問い合わせ先 メールでのお問い合わせ: pr-jp@google.com メディア関係者以外からのお問い合わせにはお答えいたしかねます。 その他すべてのお問い合わせにつきましては、ヘルプセンターをご覧ください。

    C++ のプログラムのデバッグを楽にする方法
  • charの落とし穴 - 暗黙の型変換と符号拡張 - 職業としてのプログラミング

    前回unsignedでよく陥りがちなバグについて触れました。今回はその続編で、char型での落とし穴として、いわゆる符号拡張(sign extension)と暗黙の型変換(inplicit conversion)について説明します。 次のコードの問題点はわかるでしょうか? typedef char value_t; #define INVALID 0xff /* valがINVALIDなら0、それ以外で1を返す */ int check(value_t val) { switch (val) { case INVALID: return 0; default: return 1; } 一見問題なさそうに思えますが、実際このコードをコンパイルして、valにINVALID(0xff)を指定しても1が帰ってきます。なぜでしょう? C言語のswitch分では、比較値はint型として扱われます。よっ

  • ビットシフトの落とし穴 - 算術シフトと論理シフト - 職業としてのプログラミング

    C言語には、ビットシフト演算子というものがあります。左シフト演算子(<<)と右シフト演算子(>>)です。同じビット演算でも、ビット単位の論理和(|)や論理積(&)、NOT(~)等はの方は、フラグ型の変数の処理で使われる事が多い気がしますが、ビットシフトの方は使用されるケースはあまりないかもしれません。 さて、このビットシフト演算子で時々問題になるのが、符号ビットが立っている時の右シフト演算です。見逃されがちなポイントは、 型によって挙動(算術シフトか論理シフトか)がかわることがある C言語の規格として、算術シフトか論理シフトかは不定 Nbitの算術シフトと2のN乗での除算は等価ではない といったところにあります。 算術シフト(shift arithmetic)と論理シフト(shift logical:又は0充填シフト)という言葉をご存知ない方のためにちょっと説明を書いておくと、シフトによっ