1
マイクロコントローラー用RTOSのメッセージキュー
現在、マイクロコントローラー用のRTOSを書いています。全体がC ++ 11で書かれています-誰かが興味を持っていて、リポジトリへのリンクが一番下にある場合。 現在私は、スレッド間(または、割り込みハンドラーとスレッド間、または割り込みハンドラーと他の割り込みハンドラー間)でオブジェクトを受け渡すための単純なデータキューであるクラスを作成しています。通常、私は他のプロジェクトにあるいくつかの共通のAPIを追跡しようとすると、まだ私は持っている同時キューのいずれかの例が見つかりませんでしたemplace()機能とサポートタイムアウトを。 私の一般的な「問題」は、次の2つのインターフェースを決定できないことです。 (std::chrono::duration<Rep, Period>はテンプレートタイプです。わかりやすくするためにテンプレートのボイラープレートは省略しています) 最初のバージョン: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, Args&&... args); int tryPopFor(T&, std::chrono::duration<Rep, Period>); int tryPushFor(const T&, std::chrono::duration<Rep, Period>); int tryPushFor(T&&, std::chrono::duration<Rep, Period>); ... } 2番目のバージョン: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, …