タグ

C++に関するhirokistのブックマーク (57)

  • 組み込みシステム上でのC++ | POSTD

    去年の10月、私が所属している 会社 の部署で、組み込みファームウェアの開発をC言語からC++に切り替えました。C++のクラス、リソースの自動クリーンアップ、パラメータ多相、そして強化された型安全性などは、汎用OSをデスクトップ機で稼働している時と同様、リアルタイムOS(RTOS)やベアメタル上でも便利です。C++を使えば、安全で表現豊かなファームウェアを書くことができます。 しかしC++のこの自動的な魔法は諸刃の剣とも言えます。いくつかの機能は、組み込み環境 ^(1) には搭載したくないシステムのファシリティに依存するからです。ツールチェーン周りをどうするかも厄介です。 memcpy やアトミック操作、ハードウェア固有の浮動小数点関数などの重要なファシリティが提供されるので、 libgcc と libstdc++ を完全に破棄するのではなく、特定の部分を避けて使わなくてはなりません。 こ

    組み込みシステム上でのC++ | POSTD
    hirokist
    hirokist 2017/04/10
  • モダン C++ プログラミング - 日本語公開記事 - Confluence

    このドキュメントはサイボウズ社内のトレーニング用に作成したものです。 作成時点では C++11 はまだあまり利用できない状況でしたので、C++98 ベースの記述になっています。 いずれ更新を予定しています。 モダンの定義モダンとはテンプレートメタプログラミング(TMP)を駆使することです。嘘です。 宗教論争に意味はないので、ここでは 「最近の C++ の仕様・機能を理解し、C より実装効率が良く不具合の少ない」 プログラミング技法を「モダン C++ プログラミング」と定義します。 つまり、不具合が少なく、かつ C にはもう戻れなくなるような効率の良さを達成するものです。 学習効率(ROI)が極めて良くないような技法(例えば TMP)は、この定義では除外されます。 勉強方法お勧めの順序は以下。決して全部を読もうとしないこと。 C++ Language Tutorial のような、あっさりした

  • C++ Reference Project

    C Library The elements of the C language library are also included as a subset of the C++ Standard library. These cover many aspects, from general utility functions and macros to input/output functions and dynamic memory management functions: <cassert> (assert.h)C Diagnostics Library (header)<cctype> (ctype.h)Character handling functions (header)<cerrno> (errno.h)C Errors (header)<cfenv> (fenv.h)F

  • googletest1.5.0の使い方・その1:ビルドする - エンジニアのソフトウェア的愛情

    「書く書く詐欺」になりつつあった、googletest 1.5.0の解説。ようやく着手です。 今までは、「./configureしてmakeしてsudo make installすればOK」…という具合にやってきていたんですが、Version1.5.0ではこの方法を正式には採用しない方針に変更したようです。 そのように考えた理由がここに書かれています。 Google グループ 要は。コンパイル済みのライブラリを作ってしまうと、コンパイル条件を変更したいときとかに追従できなくていろいろ悪さする可能性があるから、ということのようです。で、テストをビルドするときにgoogletestのコードも一緒にコンパイルしてくださいな、ということみたいです。 READMEファイルの内容とgtest-1.5.0/src/Makefileの焼き直しですが、Version1.5.0のビルドの仕方を簡単に説明。 直

    googletest1.5.0の使い方・その1:ビルドする - エンジニアのソフトウェア的愛情
  • Google製のC++ Unit Test Framework「Google Test」を使ってみる

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Google製のC++ Unit Test Framework「Google Test」を使ってみる
  • googletestまとめ - エンジニアのソフトウェア的愛情

    導入 →googletestについてのまとめ テストの記述 基的な使い方 →基的な使い方 前処理・後処理のあるテスト →前処理・後処理のあるテスト アサーション 二種類のアサーション(FatalなアサーションとNonFatalなアサーション) 真偽を評価するアサーション 二つの値を比較するアサーション C言語形式の文字列を比較するアサーション →アサーションの解説(1) 例外を扱うアサーション →アサーションの解説(3) 評価方法を指定するアサーション 無条件の成功と失敗 →アサーションの解説(2) 実行時オプションと環境変数 →実行時オプションと環境変数(1)

    googletestまとめ - エンジニアのソフトウェア的愛情
  • googletest - Google C++ Testing Framework - Google Project Hosting

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    googletest - Google C++ Testing Framework - Google Project Hosting
  • ウェーブレット木を試す - Negative/Positive Thinking

    はじめに 巨大な文字列でも高速にクエリ処理できる噂の木を、挙動を確認するため作ってみた。 コード アルファベット(a〜z)の文字列を扱う場合 完備辞書の操作が愚直、ビット列がvector を参考にしたけど、2か所間違ってる? #include <iostream> #include <vector> #include <queue> #include <cmath> //top_kのためのタプル struct ST { int t; size_t st, en; ST(int t, size_t st, size_t en):t(t),st(st),en(en){} }; bool operator<(const ST& a, const ST& b){ return (a.en-a.st) < (b.en-b.st); } //アルファベット([a-z]+)用のウェーブレット木 cla

    ウェーブレット木を試す - Negative/Positive Thinking
  • 大規模フィンガープリント類似検索のための簡潔マルチビット木の実装を公開しました - Yasuo Tabeiの日記

    以前のブログで紹介した簡潔マルチビット木のc++による実装 (Succinct Multibit Tree (SMBT)) を公開致しました。ソフトウェアーはgoogle codeからダウンロードすることができます。 http://code.google.com/p/smbt/ SMBTは去年のWABIで発表した内容にもとづいています。 簡潔マルチビット木に関するブログ記事 : http://d.hatena.ne.jp/tb_yasu/20120808/1344415559 論文 : Yasuo Tabei: Succinct Multibit Tree: Compact Representation of Multibit Trees by Using Succinct Data Structures in Chemical Fingerprint Searches, Workshop

    大規模フィンガープリント類似検索のための簡潔マルチビット木の実装を公開しました - Yasuo Tabeiの日記
  • cppcheck 日本語マニュアル | 一人ぼっちの共鳴

    一定期間更新がないため広告を表示しています

    cppcheck 日本語マニュアル | 一人ぼっちの共鳴
    hirokist
    hirokist 2013/02/06
  • インテルTBBから学ぶループの並列化

    はじめに この連載では、並列処理を高度に抽象化したインテルTBBを通じて、並列化の考え方を取得することを目的としています。今後、並列化は当たり前のものとなり、さまざまな形でサポートされるようになります。並列化処理の根底に流れる考え方を身につければ、その変化に対応できます。 今回はインテルTBBのアルゴリズムテンプレートとループの並列化について解説します。この連載のサンプルはあくまでもインテルTBBの使い方を説明するものであり、実務を特別に意識したものではありません。その点をご理解下さい。 対象読者 筆者が想定している読者はC++の基的文法を理解し、並列化プログラミングに興味を持っている方です。高度なC++テクニックを極力さけ、基的な文法さえ分かれば読めるように極力注意しますので、並列化に興味を持っている方はぜひこの連載に目を通して下さい。 必要な環境 C++コンパイラが必要です。お持ち

    インテルTBBから学ぶループの並列化
  • インテルTBB 3.0によるパイプライン処理

    オープンソースのマルチスレッドライブラリ、インテルTBB(Threading Building Blocks、以下TBB)がversion 3.0となりました。Visual C++ 2005(vc8)、2008(vc9)に加え、2010(vc10)にも対応しています。TBBのインストール・ディレクトリを環境変数TBB30_INSTALL_DIRにセットしておけば、インクルード/ライブラリディレクトリの設定はVS2010 IDEのプロジェクト・プロパティでそれぞれ次のようになります。 インクルード: $(TBB30_INSTALL_DIR)\include ライブラリ: $(TBB30_INSTALL_DIR)\lib\ia32\vc10 さらにTBBのDLLが$(TBB30_INSTALL_DIR)\bin\ia32\vc10にありますから、ここにPATHを通すか、DLLをPATHの通った

    インテルTBB 3.0によるパイプライン処理
  • EffectiveC++入門

    C++プログラマにとって、『Effective C++』はバイブルのような存在です。どれくらいバイブルかというと、皆さんの使っているGNUのGCCコンパイラには、EffectiveC++のコーディングガイドラインに従っているかどうかチェックするためのコンパイラオプション『-Weffc++』が、あるくらいです。 しかし、その内容は決して初心者向きではなく、実際に買ったはいいが、書棚の肥やしになっているような人たちも多いと思います。そこで、そのような初心者の人たちに EffectiveC++ を読み解くために各章のエッセンスをまとめたガイドラインを書いてみました。 C++はもう時代遅れとよく言われますが、組み込み系からビジネスシステムまで、幅広くカバーできる言語は、C++以外にありません。C++を知っていれば、おそらくどのような業界にも通用するでしょう。ITプログラマを自負するのであれば、C+

  • Visual C++でマルチスレッド・プログラミング(1/4) - @IT

    書籍転載 文法からはじめるプログラミング言語Microsoft Visual C++入門 Visual C++でマルチスレッド・プログラミング ――第13章 並列処理~マルチスレッドプログラミング(後編)―― WINGSプロジェクト 矢吹 太朗(監修 山田 祥寛) 2010/04/28 コーナーは、日経BPソフトプレス発行の書籍『文法からはじめるプログラミング言語Microsoft Visual C++入門』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などをサイトのデザインに合わせている部分が若干ありますので、ご了承ください。『文法からはじめるプログラミング言語M

  • ロベールのC++教室

    hirokist
    hirokist 2013/01/31
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • C++で大規模な配列追記のパフォーマンス - ponkotuyの日記

    はじめに @__boronium による 「じゃあC++はどうなの?」 という疑問にお答えするコーナー。元のPython版はhttp://d.hatena.ne.jp/ponkotuy/20111216/1324021461 でどうぞ。 ちなみにg++4.6.1 -O2 -std=c++0xでコンパイル。 はじめる前に補足 微妙に間違った参考のされ方してたので補足しておくと、こいつはどういう訳か「データの入力が圧倒的に多いのにその殆どは参照すらされずに捨てられる場合」に一番早いコンテナ、という極めて稀なパターンに特化した測定なので、そゆ場合にしかアテになりません。 Vector #include <vector> int main() { const int size = 10000000; std::vector<int> v = {1,2,3}; for(int i=0; i<size

    C++で大規模な配列追記のパフォーマンス - ponkotuyの日記
    hirokist
    hirokist 2013/01/16
  • vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記

    やあ子供たち。今日はSTLのstd::⇒ vector, list, set, dequeのパフォーマンス測定の実験をしたよ。以下のようなコードだ。試してみてくれ。 #include <iostream> #include <vector> #include <list> #include <algorithm> #include <ctime> #include <set> #include <deque> using namespace std; #define N 1000000 #define P 400000 class less_than_4000 { public: bool operator()( int i ){ return i<P; } }; int main( int argc, char* argv[] ) { vector< int > vec; list< i

    vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記
    hirokist
    hirokist 2013/01/16
  • Effective C++ 原著第3版 - へたっぴ日記

    八重洲ブ店。 Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) 作者: スコット・メイヤーズ,小林健一郎出版社/メーカー: ピアソン・エデュケーション発売日: 2006/04/29メディア: 大型購入: 29人 クリック: 411回この商品を含むブログ (186件) を見る*1 巻末付録に第2版と第3版の対応表があるのだが、項番号だけしか記されてなくわかりにくいので、タイトル込みの表にしとく。 とりあえず追加された項(1,8,9,15,17,25,29,35,42,43,45,46,47,48,55)だけ先に読んでおこう。第2版にあったものも内容は書き直されているとのことなので(あんど、以前第2版を読んだときはちんぷんかんぷんのものが多かったので…)、あとでちゃんと読もう。 3版 2版 項 タイトル 項

    Effective C++ 原著第3版 - へたっぴ日記
    hirokist
    hirokist 2013/01/16
    Effective C++ の第2版と第3版の対応表、違い
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。