C++
リアルタイムに画像処理、AI処理をしてみたんだけど、CPUが100%に張り付いちゃってカメラのフレームレートに追いつかなくなってしまったわ ふ...お子ちゃまね ファッ!? GoogleのMediapipeはタスクごとに分割(モジュール化)してスレッドプールに格納している…
IoTとかロボットにプログラムを組み込みするときにC++でテンプレートメタプログラミングを使ってみたいよね x86_x64 , Arm, RISC-VなどのCPU, GPU, FPGAで表面上は同じソースコードを使ってみたいわ コードをコンパイル時に自動生成って怖くないですか? え…
プログラミング歴10年以上の先輩が上のような実装をしたんだけどさ... キャメルケースに大文字を使ってるのが違和感あるんだよね 後、私はメソッドに動詞を書くのは必須だと思うのよ Get、Set、Find、Clear、Cancel...etc。 つまりこんな感じ まぁこれは些細…
ignition gazeboのソースを見るといくつかのファイル(ほぼ全て?)に #include "ignition/gazebo/Export.hh" というようにExport.hhがインクルードされている。 このExport.hhというファイルはビルド前には存在しない。 Export.hh.inという形で存在している(.…
Ignition Gazeboに以下のようなコードがある。 void Model::SetWorldPoseCmd(EntityComponentManager &_ecm, const math::Pose3d &_pose) { auto poseCmdComp = _ecm.Component<components::WorldPoseCmd>( this->dataPtr->id); if (!poseCmdComp) { _ecm.CreateComponent(this->dataPt</components::worldposecmd>…
nullpo24.hatenablog.com オブジェクトのハンドル(ポインタ)を取得できれば、 オブジェクトの操作はなんだってできる というわけではありません。 リアル世界 言われたことを素直に理解します。 コンピュータ世界 : オブジェクト指向 オブジェクト指向はフィ…
イベント処理の実装に苦しめられている今日この頃。 ある意味、基本中の基本なのだが、 基本情報技術者試験を合格しても実装することはできないし、 応用情報技術者試験を合格しても実装することはできない。 実装するには提供されたAPIのサンプルを動かして…
Q.WindowsでXMLファイルなどのリソースをまとめるには A.Win32APIを使う Q.Linuxでリソースをまとめるには A.リソースをオブジェクトファイルにしてリンクをする Q.複数のファイルをまとめるにはどうすればよいか A各々のオブジェクトファイルを作って、各々…
プログラミングは簡単だ。 順次、分岐、繰り返しのみ! ... 入門では登場しないHANDLEという概念。 C/C++ではFOO_HANDLEという定義をhfooやhbarという名前で使われています。 実態はvoid*です。 映画でHANLEが使われる場面 Handle us? You'll handle us? You…
C++のtemplateは開発者が使用者のために自由に型定義できるようにしたもの。 参考 適当なC++テンプレート入門 - Qiita
同一のAPIを提供するにあたって、WindowsとLinuxを別々に作成するのはめんどくさいし、工数もかかる。 というわけで、WindowsとLinuxのコードを共通化して開発工数を削減しよう。 そうして出来上がっていたのはこんな感じのコードである。 hogeFunction() { …