汎用ベクター ライブラリがあるとします。使いやすくするために、ベクター ライブラリのさまざまな一般的な形式をインスタンス化し、それらを 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 を直接利用できるようにしたいということです。Vector3
Vector4
当然、上記のコードは機能しません。use all type
ステートメントは、指定された型に添付された定義をパッケージ仕様にインポートするように見えますが、それらの定義は のユーザーにエクスポートされませんVectors
。代わりに私がしなければなりませんwith Vectors; use Vectors; use all type Vectors.Vectors3;
。これはちょっとひどいです。
これどうやってするの?