#34前回はインタフェースの継承と実装の継承をうまく使い分けるという話だった。今回はvirtual関数の代替策を考えるという話。virtualな実体を呼び出す方法がある。処理実体の前後に特定の処理(ロギングなど)を挟み込みたい場合に便利。interface(NVI)イディオムと呼び、デザインパターン方面ではテンプレートメソッドと呼ばれるもの。ここでのテンプレートはC++のテンプレートとは関係ないよというのが書かれている。関数ポインタを使ったStrategyパターンそもそも処理実体がクラス内に存在する必要がない場合にはNVIイディオムはあまりマッチしない。いう場合にはコンストラクタに計算用関数のポインタを渡すなどして外部のものを使う方法がある。この場合は計算ロジックを実行時に選択できるし、同クラスの別インスタンス同士で異なる計算ロジックを利用できる。一方で計算ロジックが元クラス外にあるということは元クラスのpublic要素にしかアクセスできなくなる問題がある。原則的にこれはクラスのカプセル化をゆるめることで解決するしかない。tr1::functionを使ったStrategyパターンさきの関数ポインタによる実装に柔軟性を持たせられるのがtr::functionを使うパターン。関数の代わりに関数オブジェクトを使ったり、指定型の戻り値の代わりにその型へ変換できる任意の型を使ったり、という便利さを得られる。Meyers自身による説明がhttp://www.aristeia.com/EC3E/TR1_info.htmlにある。クラシックなStrategyパターン計算用クラスのツリーを作っていき、そのポインタを計算利用側に持つという伝統的なやつ。計算種類を増やしたくなったら計算用クラスを継承して新規作成すればいい。結果いろいろな方法が考えられるということはおさえておこうねというのが論旨、という話でおしまい。私の現時点でのPetaLinux認識は次のとおりです。Xilinxが提供しているカスタムLinux構成管理ツール兼カーネル・rootfsビルダー。Dockerで簡単にGPU対応のTensorFlow入りコンテナを作る方法こんにちは。作品群を読んでいたら連休が終わりそうです。本ページで記載している内容は100V、12Aという大電流を扱うものです。パーツの組み方や運用の仕方によっては火災や感電へ発展する危険があります。通りハングアップしました。2.0(AOA2.0)についてかなり久々の翻訳です。昨年末に同人ハードウェア製作をしていたのですが、自前設計の基板に正しく信号が流れているのか確認するのに苦労することが何度かありました。MacBookを4/10に注文、4/14出荷、届いたのは4/17だったので正確にはもうすぐ2ヶ月ですが。資料を補足するシリーズです。途中でやったことや、参考情報を書いていきます。APIのモックを作ったよー。ライセンスの下に提供されています。