本ライブラリへの機能追加、改良を行う際のガイドです。今後変更していただいても大丈夫です。
使用言語
C++
を使用します。
言語バージョン
共通部は C++11
を使用します。C++14
以上の機能は現時点で使用していません。各マイコンに合わせた機能の場合は例外です。
理由: Arduino Nano のコンパイラのバージョンが C++11 であり、低いバージョンに合わせているためです。Arduino Nano への対応を終了する場合、C++14 へのバージョンアップをしてもいいと思います。 (Teensy: C++14, RaspberryPiPico: C++17)
依存ライブラリ
基本的に C 言語標準ライブラリもしくは C++ 標準ライブラリ STL(C+11) を使用します。
clang-format を使用してファイルを自動整形します。書式設定ファイルは UdonLibrary/.clang-format
にあります。
変数、関数などを作成する際の命名規則です。
アッパーキャメルケース
を使用します。
拡張子はヘッダーファイルに *.hpp
、ソースファイルに *.cpp
を使用します。
例外的に
UdonLibrary/
下のディレクトリ名にはローワーキャメルケース
を使用しています。なぜなら、Arduino のライブラリディレクトリ名はsrc/
である必要があり、これに合わせているためです。UdonLibrary/├─ src/│ └─Driver/│ └─Motor.hpp
通常変数 (ローカル、グローバル変数)
ローワーキャメルケース
を使用します。
メンバ変数
通常の変数名と同じ。
実行時定数
通常の変数名と同じ。
コンパイル時定数
アッパーキャメルケース
を使用します。
グローバル関数
アッパーキャメルケース
を使用します。
メンバ関数
ローワーキャメルケース
を使用します。
クラス 構造体
アッパーキャメルケース
を使用します。
インターフェースクラス
クラス名の先頭に I
を加えます。
メンバ型
アッパーキャメルケース
を使用します。
列挙型
型名、メンバ名ともに アッパーキャメルケース
を使用します。
共用体
アッパーキャメルケース
を使用します。メンバはクラスのメンバと同じ命名規則を使用します。
テンプレート引数
アッパーキャメルケース
を使用します。短い名前が好ましいです。
メタ関数
アッパーキャメルケース
を使用します。型の特性を取得するものなので、Is~
や ~able
を使用すると良いです。
アッパーキャメルケース
を使用します。
大文字のスネークケース
を使用します。