










プロジェクトのドキュメント
C ++は埋め込みアプリケーションに使用するのに最適な言語であり、テンプレートは強力な側面です。標準的なライブラリは、十分にテストされた機能を非常に提供できますが、決定論的な動作と限られたリソース要件に適していない標準ライブラリには一部があります。これらの制限により、通常、オープンエンドサイズの動的に割り当てられたメモリとコンテナの使用が排除されます。
必要なのは、ユーザーがオブジェクトのサイズまたは最大サイズを事前に宣言できるテンプレートライブラリです。ほとんどの組み込みコンパイラは現在、C ++ 03を超えた標準をサポートしていないため、プログラマーが後のライブラリの拡張機能を使用することを除外しています。
これがETLが達成しようとすることです。
ETLは、STLを完全に交換するように設計されていませんが、補完するように設計されています。その設計目標は、3つの領域をカバーしています。
組み込みテンプレートライブラリは、より低いリソース埋め込みアプリケーション用に設計されています。コンテナ、アルゴリズム、ユーティリティのセットが含まれており、その一部はSTLの一部をエミュレートします。動的なメモリの割り当てはありません。ライブラリはヒープを使用しません。すべてのコンテナには固定容量があり、コンパイル時にすべてのメモリ割り当てを決定できます。ライブラリは、C ++ 98/03/11/14/17/20をサポートするコンパイラを対象としています。
さまざまなプラットフォームやコンパイラの下でライブラリを移植するのに役立つのは、感謝して受け入れられます。私は特に、Keil、IAR、Green Hills、Ti Code Composerなど、裸の金属またはRTO、およびDSPを使用している人々に興味があります。
最新情報については、(https://www.etlcpp.com)を参照してください。
ここでセットアップ手順を見つけることができます。
このライブラリを使用する1つの方法は、プロジェクトディレクトリのどこかにドロップし、 add_subdirectoryを使用してライブラリを利用できるようにすることです。
add_subdirectory (etl)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl)ETLライブラリがGitサブモジュールとして使用されている場合、ライブラリルートディレクトリの外側のGitフォルダーのルックアップを許可することにより、適切なETLバージョン解像度のために追加の構成が必要になる場合があります。
set (GIT_DIR_LOOKUP_POLICY ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
add_subdirectory (etl)このライブラリをCmakeでインストールする場合は、次の手順を実行できます。 Linuxでは、ライブラリをインストールするためにスーパーユーザーの権利が必要になる場合があるため、最後のコマンドの前にsudoを追加する必要がある場合があります。
git clone https://github.com/ETLCPP/etl.git
cd etl
git checkout < targetVersion >
cmake -B build .
cmake --install build/ライブラリがインストールされた後、Find_Packageを使用してライブラリを使用できます。 <majorVersionRequirement>希望するメジャーバージョンに置き換えます。
find_package (etl <majorVersionRequirement>)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl)または、fetchContentを使用して、 <targetVersion>をバージョンに置き換えて、gitタグに基づいてインストールします。
Include(FetchContent)
FetchContent_Declare(
etl
GIT_REPOSITORY https://github.com/ETLCPP/etl
GIT_TAG < targetVersion >
)
FetchContent_MakeAvailable(etl)
add_executable(foo main.cpp)
target_link_libraries(foo PRIVATE etl::etl)このレポのコンテンツは、Arduino IDEのライブラリとして入手できます(IDEライブラリマネージャーの「組み込みテンプレートライブラリ」を検索)。 Arduino Libraryリポジトリはhttps://github.com/ETLCPP/etl-arduinoで入手できます。詳細については、ご覧ください。