1

汎用ベクター ライブラリがあるとします。使いやすくするために、ベクター ライブラリのさまざまな一般的な形式をインスタンス化し、それらを 1 つのパッケージで表示できるようにしたいと考えています。

私はこれを試しています:

with GenericVector;

package Vectors is
    package Vectors3 is new GenericVector(3);
    use all type Vectors3.Vector;
    subtype Vector3 is Vectors3.Vector;

    package Vectors4 is new GenericVector(4);
    use all type Vectors4.Vector;
    subtype Vector4 is Vectors4.Vector;
end;

最終的な目標は、私ができるようになりwith Vectors; use Vectors;、最終的に、Just Work を直接利用できるようにしたいということです。Vector3Vector4

当然、上記のコードは機能しません。use all typeステートメントは、指定された型に添付された定義をパッケージ仕様にインポートするように見えますが、それらの定義は のユーザーにエクスポートされませんVectors。代わりに私がしなければなりませんwith Vectors; use Vectors; use all type Vectors.Vectors3;。これはちょっとひどいです。

これどうやってするの?

4

2 に答える 2

1

サブタイプだけでなく、単純Vector3に新しいタイプを作成することもできます。これは、 inVector4から継承されたすべてのプリミティブ操作を暗黙的に宣言します。GenericVectorVectors

于 2014-05-18T07:52:10.133 に答える