はじめに CMakeを使い始めて色々と学んだことを少しずつまとめています。 関連記事 CMakeの使い方(その1) CMakeの使い方(その2) 参考資料 CMake Documentation - FetchContent ステップ8:他のライブラリを自分のプロジェクトで使えるようにする 自分のCMakeプロジェクトをビルドするために、インストールされていないライブラリが必要だとします。CMakeには、ビルドに必要なライブラリを自分のCMakeプロジェクト内で使えるようにするFetchContentというモジュールがあります。 FetchContentモジュールに含まれるFecthContent_Declare関数とFetchContent_MakeAvailable関数を使うと、他のプロジェクトのCMakeターゲットや変数をそのまま自分のプロジェクト内で参照できるようになります。詳しく
This site contains an original, self-contained guide to learning the fundamentals of Modern C++, intended to be the basis of a self-study course. Some Chapters depend upon material presented in earlier ones, so studying them linearly is recommended. There are also regular posts (accessible from the front page) which cover topics or areas of C++ not covered in the course. If you have any queries or
この記事は「自動運転システムをエッジデバイスに組み込むための技術」を3回に分けて紹介するTURINGのテックブログ連載の第1回の記事「C++でOpenCV完全入門!」です。 第2回の「OpenCVをNPPにした結果→10倍高速に!」、第3回の「詳解V4L2 (video for linux 2)」もぜひご覧ください! はじめに こんにちは。完全自動運転EVを開発するベンチャー企業、TURING株式会社でインターンをしている東大工学部3年の井上信多郎です。 我々人類は、車を運転するにあたって多くの情報を目から取り入れています。目から取り入れた情報を元に、アクセル・ブレーキ・ハンドルを操作しています。 自動運転の場合、その目に相当するセンサがカメラであり、カメラから得た情報を元に車を運転することになります。カメラから得る情報とは、ずばり画像です。画像の中から信号、標識、前方車両などの必要なもの
C/C++でプログラムを書いているときに遭遇する厄介なバグの一つがメモリリークです。 今回はメモリリークを検出するのに使えるツールの使い方について書きます。 AddressSanitizer コンパイルオプションをつけるだけで使えて出力も見やすいのでおすすめです。 AddressSanitizerはGCC 4.8以降かLLVM 3.1以降で使うことができます。 コンパイル時にオプションをつけるだけでメモリリークを検出してくれます。(若干実行時間が長くなります) 以下のメモリリークのあるプログラム leak.cpp を例に使い方を説明します。 int main() { int *a = new int[10]; } newで作った動的配列をdeleteしていないのでメモリリークになります。 g++ -fsanitize=address -fno-omit-frame-pointer -g l
C++ の歩き方 | cppmap¶ 📢 CEDEC 2024 にて講演を行いました。発表資料を公開しています。 CEDEC 2024 | ゲーム開発者のための C++17~C++23, 近年の C++ 規格策定の動向 📢 CEDEC 2020 にて講演を行いました。発表資料を公開しています。 CEDEC 2020 | ゲーム開発者のための C++11~C++20, 将来の C++ の展望 📢 コンテンツ拡充のため【募集】タグのスレッドへ情報をお寄せください。 cppmap.docs | Issues 📢 本サイトの運営は、GitHub Sponsors によって支えられています。 GitHub Sponsors | Become a sponsor to Reputeless このサイトについて¶ C++17, C++20, C++23, C++26 に関する情報を調査・提供しま
みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文法は知っているけどなんとなく使いこなせていない方、マサカリ屋にあーだこーだ言われて大混乱している方。必勝パターンを身につければもっと楽にコードを読み書きできるようになるかもしれません。 この文章の目的は、ModernC++におけるメンタルモデル(考え方)や必勝パターンをざっくりと導入することでみなさんが楽にModernC++を読み書きできるようなお手伝いをすることです。主要な内容としてはムーブセマンティクスと右辺値 とその次の章でだいたいA4換算で15ページくらい?ほかは正直流し読みしてもらえるような内容です。また、内容的にはその
ファイルの読み書きをマルチスレッドで並列に行うための仕組みを、各種プログラミング言語(C++、C、Java、Ruby、Python)で利用できるようにライブラリを整備した。メモリマップI/O、通常I/O、ダイレクトI/Oを同じインターフェイスで利用できる。Tkrzw-0.9.38からこの機能が利用できる。メモリマップI/Oと通常I/Oは全ての処理系で、ダイレクトI/OはLinuxとMacとWindowsで利用できる。 データベースライブラリTkrzwはマルチスレッド環境での並列処理性能を重視して開発しているが、そこで利用しているファイル層の機能を直接利用できるようにAPIを整備した。データベースとしてではなく、単なるフラットなファイルとして利用するためのAPIである。テキストにもバイナリにも利用できる。 C++ API C API Java API Python API Ruby API
ホーム 1. C++ を始める 2. 基本構文 3. コンテナ 4. ファイル分割とスコープ 5. ストリーム操作 6. メモリの管理 7. クラス 8. キャスト 9. テンプレート 10. エラー処理 11. ビルドとライブラリ 12. メモリレイアウト 単体テスト デバッグ ビルド自動化 付録 このサイトは C++ について説明した学習サイトです。 本書を通じて C++ の開発環境や構文・単体テストの書き方などが 一通り学べるようになっています。 対象¶ C++ を初めて学ぶ人 プログラム言語を 1 つ以上経験したことのある人 関数やクラス・オブジェクト指向に対する知識をある程度前提にします。 C++ の特徴¶ C++ は ビャーネ・ストロヴストルップ により開発されたプログラミング言語です。 C++ には主に次のような特徴があります。 高パフォーマンス メモリ使用量が少ない 柔軟性
電子情報学特論: Chromium のアーキテクチャを解き明かす 〜 EEIC の授業が生きるプロダクトの世界〜 Kentaro Hara 2020 April (๑>ᴗ<๑) * * * *
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 対象者 C++erを簡易的にレベル分けすることで初心者詐欺を減らそうという試み でいうC++初心者以上であることが前提です。 また日本の義務教育ないしそれに相当するものを終了していることも条件とします。 Cl、まだチュートリアル以前で なんのために存在しているのか未だにわかっていません……。 — std::gaccho( ¨̮ ); (@wanotaitei) April 27, 2019 単体テストって1つのソースファイルのみを入れて実行するやつですかね? (名称をよくわかっていない) — std::gaccho( ¨̮ ); (@w
/追記予定のもの/ explicit final デフォルトコンストラクタの明示的指定について スマートポインタ(さわりだけ) ODR系のなんか(ファイル分割とか) デフォルト引数でコンストラクタに引数を渡さないようにするのは良くない 導入 私が持てる全ての知識を共有するために、このような記事を書くことを決めました。 前半はC++のお作法。 後半はオブジェクト指向の普遍的な設計方法についてです。 なお、C++11以降を前提として話を進めていきます。 謝辞 私に今回の記事を書くにあたってアドバイスを提供してくれたツイッターの方々、 @kazatsuyu @yumetodo @coord-e @badadder @Gaccho に感謝の意を表します。 using namespace stdを使うな 以下のコードは典型的な悪いコードです。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - c
はじめに まさかの第2弾です。 前回の記事が好評だったため、今回は少し違った視点からコンパイル時間の削減についての話をさせていただこうと思います。 C++17も普及してきたようで、C++の構文はますます複雑化しています。テンプレートを使用したテクニックやconstexprの需要の増加に伴い、ヘッダオンリーのライブラリの増加、コンパイル時処理の増加が見られるようになりました。 しかしそれと反比例して、C++のコンパイル時間は増大していきます。 一つの翻訳単位でもコンパイル時間が数十秒、あるいは数分に及ぶことさえあり、さらにコンパイル中のメモリ消費量も問題になってきます。 あるヘッダオンリーライブラリを利用した時は、たった一つの翻訳単位でメモリの6割を消費してしまいました。 前回の記事では、主にソースコードに工夫を加えることによってコンパイル時間を削減する方法を紹介してきました。なので今回は、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く