目次

C++

プログラミング言語CGCCも参照

cpprefjp - C++日本語リファレンス
ゼロから学ぶC++
Google C++ スタイルガイド 日本語全訳
競技プログラミングからプログラミングを始めた人に向けたC++の記事

文法

仮想関数

基底クラスで定義されている関数を、派生クラスの関数で定義を上書きできるように、基底クラスの関数(上書きされることがある関数)に取り付けておく属性

純粋仮想関数

基底関数で内容の定義を行わない仮想関数のこと

参照渡し

C++ 値渡し、ポインタ渡し、参照渡しを使い分けよう
ペリフェラルのドライバクラスを作るとき、ペリフェラルの数字を参照したいのでそのペリフェラルの構造体メンバ変数のポインタを渡すことでその中身を参照していた。 しかしこの参照私というのを使うとよりいい感じ?に書ける可能性が出てきたので試してみたい。

tuple(型)

tuple型は、複数の型の値を保持する「タプル」を表現するためのクラスである。 → 戻り値どうやって確保するん? autoで記述して、tuple型クラス内のreturnから推測されて自動的に型が決まる?

コードフォーマット

clang-formatで成型する。個別の設定は .clang-formatに保存、設定可能。 ClangFormat
VSCodeでフォーマッタが動かないときがある,LLVMをインストールしてパス通せば良い.
WindowsのVSCodeでclang-formatが効かない時の確認と対処
Error write EPIPE using clang-format with visual studio code (Assumption: user settings ignored, default value added to each workspace) #83

lint

lint とは、主にC言語のソースコードに対し、コンパイラよりも詳細かつ厳密なチェックを行うプログラムである。静的解析ツールとも呼ばれる。(by Wikipedia)
cppplintがよい?

cpplint でコーディングチェック
C++ Lint 何が良いか問題

組み込みとC++

GCCのオプションも参照のこと
組込み現場の「C++」プログラミング 明日から使える徹底入門
組み込みシステム上でのC++
Using exceptions in C++ embedded software

matplotlibとの連携でグラフ表示

C++のコードから簡単にmatplotlibを使ってグラフを作成する方法
[C++] MatplotlibをC++から使う
[Windows] C++からmatplotlibでグラフを表示する方法  

コンパイル時に定数生成

defineディレクティブなどを用いて、ビルド時に定数として結合しておきたい、c++ならconstexprを使うと楽に作れる

constexpr char build_time_str[] = "\r\n" __DATE__ ", " __TIME__ "\r\n";
constexpr char gcc_version_str[] = "gcc version : " ARM_GCC_VERSION "\r\n";
constexpr char git_branch_str[] = "git branch : " GIT_BRANCH_NAME "\r\n";
constexpr char git_tag_name_str[] = "git tag : " GIT_TAG_NAME "\r\n";
constexpr char git_info_str[] = "git info : " GIT_BUILD_INFO "\r\n";

文字列定数について(#defineかconstexprか)

使った関数とかメモ

文字列を浮動小数点に変換したい

std::stofを使っていたけど、C++17以降ならstd::from_charsを使ったほうが良さそう

参考文献

C/C++のビルドの仕組みとライブラリ