- [[Interfaceの定義については確認しました>../about]]
- 続いては定義したInterfaceに具体的な実装を書いていきます
# 構文
- 構文は明確には定まっている訳ではなく[[anatofuz>/user/anatofuz]]が勝手に考えているものです
- 2019/12/25までの論文ではInterfaceの定義の記述のみしか存在していない為です
|
|
- 構文はInterfaceの構文と似ています
# 解説
# 1行目(実装名の定義)
- 先頭に「実装の構造体の名前」「実装するInterfaceの名前」を書きます
typedef struct ImplName<Type, Isa> impl <InterfaceName>typedef structの直後の実装名を書きますimplの後の<>の中にInterface名をいれます- 現時点では実装できるInterfaceは1つだけになっています
<Type, Isa>については後ほど解説します
# DataGear部分
- Interfaceと同じ様にImpl内で使う引数を列挙します
- Interfaceで定義したAPIの引数ではありません
# CodeGear部分
__code name()で記述しますTypeが「自分自身の型」であり Isaが「Interfaceの型」のエイリアスです- これらのCodeGearはInterfaceが提供するものではないので、一種のprivate methodです
- Interfaceの使用側からは意識しないCodeGearになります
- Interfaceで登録された
nextに継続する必要があります