本ライブラリへの機能追加、改良を行う際のガイドです。今後変更していただいても大丈夫です。
使用言語
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 を使用すると良いです。
アッパーキャメルケース を使用します。
大文字のスネークケース を使用します。