タグ

CPPに関するhiroomiのブックマーク (20)

  • C++ へようこそ - Modern C++

    C++ は、作成以来、世界で最も広く使用されているプログラミング言語の 1 つになりました。 適切に記述された C++ プログラムは、高速で効率的です。 言語は他の言語よりも柔軟性が高く、最高レベルの抽象化で動作し、シリコンのレベルで動作します。 C++ によって、高度に最適化された標準ライブラリが提供されます。 これにより、低レベルのハードウェア機能にアクセスして、速度を最大化し、メモリ要件を最小限に抑えることができます。 C++ では、ゲーム、デバイス ドライバー、HPC、クラウド、デスクトップ、埋め込み、モバイル アプリなど、ほぼすべての種類のプログラムを作成できます。 他のプログラミング言語のライブラリやコンパイラさえも C++ で作成されます。 C++ の最初の要件の 1 つは、C 言語との下位互換性でした。 その結果、C++ を使用すると常に、生ポインター、配列、null で終

    C++ へようこそ - Modern C++
    hiroomi
    hiroomi 2021/11/15
  • Effective Modern C++ メモ - Qiita

    自分にとっての要点メモ。 Effective C++の著者のScott MeyersによるC++11/14の定番(らしい) ※知らずに買ったら英語だったので、なんとか通読しましたが理解は随所怪しいと思われます。誤りは是非ご指摘ください。 2015/11/02追記: 日語版が出ています。稿は日語訳が出る前に書いたのなので目次の訳は一致しません。ご注意ください。 https://www.oreilly.co.jp/books/9784873117362/ 第1章: 型推論 autoやdecltypeによる型推論はコードの冗長性を減らす強力な機構だが、型推論の動きをしっかり理解していないとmodern C++での効率的なプログラミングはほぼ不可能。 1: テンプレート型推論を理解しろ 関数テンプレートtemplate<typename T> void f(ParamType param)

    Effective Modern C++ メモ - Qiita
    hiroomi
    hiroomi 2021/11/15
  • おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary

    みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文法は知っているけどなんとなく使いこなせていない方、マサカリ屋にあーだこーだ言われて大混乱している方。必勝パターンを身につければもっと楽にコードを読み書きできるようになるかもしれません。 この文章の目的は、ModernC++におけるメンタルモデル(考え方)や必勝パターンをざっくりと導入することでみなさんが楽にModernC++を読み書きできるようなお手伝いをすることです。主要な内容としてはムーブセマンティクスと右辺値 とその次の章でだいたいA4換算で15ページくらい?ほかは正直流し読みしてもらえるような内容です。また、内容的にはその

    おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary
    hiroomi
    hiroomi 2021/11/15
  • Learn Contemporary C++ | Concise&Visual Examples

    Learn up-to-date, idiomatic C++ with code examples, concise explanations, cheat sheets and infographics. -- Lerne aktuelles, idiomatisches C++ mit Code-Beispielen, knappen Erklärungen und Infografiken. -- 学现代的C++ // 代码示例,简洁的说明和图表

    Learn Contemporary C++ | Concise&Visual Examples
    hiroomi
    hiroomi 2021/09/26
  • オープン化が進むC++の現状と展望

    AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen

    オープン化が進むC++の現状と展望
  • ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck
    hiroomi
    hiroomi 2020/09/02
  • 入門ガイド — Google Test ドキュメント日本語訳

    はじめに:なぜ Google C++ Testing Frameworkを使うのか¶ Google C++ Testing Framework を上手に活用すれば,より良い C++ のテストを書くことができます. LinuxWindows,そして Mac,あなたが C++ のコードを書いているこれらの環境に関係なく Google Test を利用できます. では,優れたテストを書くにはどうすればよいのでしょうか?Google C++ Testing Framework は,どのように役立つのでしょうか?我々は次のように考えています: テストには, 独立性 と 再現性 が必要です.別のテストの結果に依存して成功したり失敗したりするテスト,をデバッグするのは非常に面倒な作業です.Google C++ Testing Framework は,各テストを異なるオブジェクト上で実行することによって

    hiroomi
    hiroomi 2018/10/19
  • UILABO 作業効率を上げるソフト開発中

    hiroomi
    hiroomi 2018/06/12
    "取得するコツは難しい理論を先に学ぶな。挫折するから分からないことは、今は置いといて必要になれば後から理解すればいい。"
  • Pythonで学習したネットワークをC++で実行する | saito's memo

    前提条件 「 tensorflowをソースからコンパイルしてインストールする 」 でコンパイルしたtensorflowの共有ライブラリ(libtensorflow_cc.so)が /usr/local/lib等の検索パスに保存されている。 また、tensorflowのヘッダファイルが適当なディレクトリに保存されている。 (以下の説明では、$HOME/local/tensorflow/include以下にヘッダファイルが保存されていると仮定する) 「 Pythonで学習したネットワークを保存する 」 のtensorflow_save_graph.pyを実行し、 MNISTのデータのダウンロード及びネットワークの学習が完了している。 tensorflowをC++で実行する手順の概要 tensorflowのC++APIの使用してニューラルネットワークの計算を行う手順は以下の通り。 これは必須では

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

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

    組み込みシステム上でのC++ | POSTD
    hiroomi
    hiroomi 2017/04/08
  • Kinect v1とKinect v2の徹底比較

    連載 INDEX 次回 → 連載について 連載では、次世代の新型のKinect for Windows(以下、Kinect v2)と、旧型のKinect for Windows(以下、Kinect v1)を比較しながら、進化したハードウェア&ソフトウェアをC++開発者向けに紹介する(※サイトでは、C#/Visual Basic開発者向けにも同様の情報を発信している。.NET開発者の方は「新型Kinect for Windows v2 Public Preview/Developer Previewプログラミング入門」という連載も併せて参照してほしい)。 次世代型のKinect for Windows 2012年に米国マイクロソフトから発売されたKinect v1は、Depth(=深度)やSkeleton(=人物姿勢)などの情報を手軽に取得できるため、世界中の開発者や研究者から注目され

    Kinect v1とKinect v2の徹底比較
    hiroomi
    hiroomi 2016/08/09
  • [C++] Google Test を使ってみた

    作成日 2014年5月20日(火曜)16:09 | 最終更新日 2014年5月20日(火曜)23:52 | 作者: 森 純一 | 参照数: 151 先日、C++で開発したプログラムの単体試験を行いました。せっかくなので、なにか単体試験用のフレームワークがないか探してみると、Google Test (Google C++ Testing Framework) なんてものがありました。名前からして良さそうな雰囲気。無償だし、ちょっと調べてみると、かなり使えそう。なので、結局これを使ってお仕事の単体試験は乗り切りました。 そこで、せっかくなので忘れないうちに、このGoogle Test を使った際の使い方などを備忘録代わりにまとめておきます。 記事の動作環境 なお、Google Test そのものはLinux,Windows, Mac など複数の環境で動作するようになっています。ここでは、Wi

    [C++] Google Test を使ってみた
  • C++17のフィーチャーリストが完成、レビューに入る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    C++17のフィーチャーリストが完成、レビューに入る
    hiroomi
    hiroomi 2016/07/13
  • MicrosoftによるC++バイナリへのテレメトリ呼び出しの自動挿入について考える

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    MicrosoftによるC++バイナリへのテレメトリ呼び出しの自動挿入について考える
    hiroomi
    hiroomi 2016/06/24
  • 6-6. C++デストラクタによる安全な資源解放

    プログラムが確保したリソースは,利用後,適切に解放しなければならない。確保したリソースを解放し忘れると,しばしばプログラムが予期せず終了することもある。ネットワークサービスを提供するプログラムにこのような不具合があると,サービスを提供できなくなる場合がある。 リソース解放忘れでもっとも有名な問題は,やはり「メモリリーク問題」だろう(関連記事『6-5. メモリリーク』)。システムのメモリ容量は有限だ。プログラムがメモリ領域を作業用に確保したいとき,malloc( )関数によりシステムからメモリ領域を借り入れる(確保)ことができる。借り入れたメモリ領域を使って作業を済ませたなら,必ずそのメモリ領域をfree( )関数でシステムへ返却(解放)しなければならない。メモリリーク問題は,プログラムが適切にfree( )関数でメモリ領域を解放しないことにより,システムの貸し出し可能なメモリがどんどん消費

    hiroomi
    hiroomi 2016/05/30
  • Security Akademeia【セキュリティアカデメイア】

    当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。 Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。 広告配信等の詳細については、プライバシーポリシーページに掲載しています。 消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題のある表現がありましたら、問い合わせページよりご連絡ください。 参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

    Security Akademeia【セキュリティアカデメイア】
    hiroomi
    hiroomi 2016/05/03
    “C言語でもC++でもきちんと明示的にヒープを解放しないと、プログラムの終了後もメモリ領域が確保されたままになる。この現象をメモリリーク(memory leak)という。”
  • GWだからWindowsのC&C++フリー開発環境MinGWをインストールしたら、またも世の中から取り残されていたことに気づいた(前編) - 🍉しいたげられたしいたけ

    4月27日 と 28日 のエントリーに、確率統計の再勉強中であることを書いた。高校時代から思っていたのだが、答えの正確性を担保するものがないことに、つらつら不満を感じた。問題集だったら巻末に答えが載っているが、現実に直面する問題にはそういうものはないから、間違えたら間違えっぱなしじゃないかということである。そして人間は必ず間違いを犯す存在なのだ。 のっけから話はズレるが、その点、複式簿記ってすごいですよ。貸借平均の原理というのに基づいて、間違いを検出するシステムが構築されている。あれも間違いなく人類の偉大な知的遺産の一つだと思っている。もっと勉強せねばと思いつつ果たしていない。 スポンサーリンク 話を戻して、高校時代に比べて今の自分は無駄に年を取ったわけでなく、ちっとは知識を蓄積しているはずだ。すぐに思いつくのは、簡単なプログラミングによってシミュレーションをすることだった。しかしマシンの

    GWだからWindowsのC&C++フリー開発環境MinGWをインストールしたら、またも世の中から取り残されていたことに気づいた(前編) - 🍉しいたげられたしいたけ
    hiroomi
    hiroomi 2016/05/01
  • 就職して9年が過ぎる - 兼雑記

    転職して7年が過ぎたというのを読んで気づいたんだけど、そろそろ入社後9年が経過したらしい。僕は結構長い期間をここで過ごしたことになるんだなと思った。ちょっと以前のことを振り返ってみようと思う。言うまでもないけどこれは僕の書ける範囲での個人的な感想と体験談であって会社の見解等を表しているものではない。 きっかけ わりと重要でない Borgチーム (の周辺) いつのまにやらBorgという名前を普通に言って良くなっている。嬉しい。まあ当時もぶっちゃけ、秘密だから出してないっていうよりは、単に誰もアカデミア的なキャリアに興味が無いから出してなかったんだと思う(私見)。 さて、当時Borgというかクラスタマネージメントのあたりでは、コンピュータのリソースて適当にたくさん使ってるけど、これ節約したらすっげー支出減ったりしない?みたいなのがホットで、なんかとりあえず色々な人々が色んなことをやっていた。い

    就職して9年が過ぎる - 兼雑記
    hiroomi
    hiroomi 2016/03/29
    " WebKit は C++ より開発サポートツールのために Python 書いてることが多い"
  • Open Watcom C/C++ 日本語化プロジェクト

    Open Watcomは米国Sybase社が公開したオープンソースです。以前は商品として販売されていたものです。C/C++とFortranのコンパイラ開発環境で、IDE、デバッガ、リソースエディタなど、ひと通りのツールが用意されています。使用できる環境は、Windows、MS-DOS、OS/2やLinuxなど、多くのホスト環境で、さまざまなOSで走るプログラムが作成できます。 「Open Watcom C/C++語化プロジェクト」は日人に都合が良いように修正してみようという計画です。使ってみるとまだまだ不具合があります。Watcomに関する資料はほとんど見当たりません。現状を改善する活動があってもいいのではないかと考えました。 Open Watcom C/C++語化プロジェクト版は、Open Watcom C/C++ ver.1.7a(http://www.openwatcom

    hiroomi
    hiroomi 2016/03/20
  • インテルTBB:Flow Graphによるデータフロープログラミング

    #ifndef UTILS_H_ #define UTILS_H_ #include <chrono> #include <cstdio> #include <iostream> // durationミリ秒のビジーウェイト void busy_wait(int duration) { using namespace std::chrono; auto start = high_resolution_clock::now(); auto stop = start; do { stop = high_resolution_clock::now(); } while ( duration_cast<milliseconds>(stop - start) < milliseconds(duration)); } // めっちゃ遅いかけ算とたし算 template<typename T> inli

    インテルTBB:Flow Graphによるデータフロープログラミング
    hiroomi
    hiroomi 2014/11/02
  • 1