4

Adaにいくつかのタスクエントリを含むタスクタイプ(たとえば、「コンピュータ」と呼ばれるタスクタイプ)を作成したいと思います。「isaccessallcomputer」タイプの入力パラメーター、つまりタスクタイプへのポインターを使用してタスクエントリを作成したいと思います。これは可能ですか?

私はこのようなことをしようとしました:

task type computer;
type computer_ptr is access all computer;    
task type computer is
  entry init(a: computer_ptr);
end computer;

これはここで提案されました。残念ながら、これは機能しません。GNATは、「コンピューター」の宣言が矛盾していると言っています。

誰かが私がやりたいことを達成する方法を考えることができますか?

4

1 に答える 1

5

を使用してtask type computer;、エントリのないタスクタイプのコンピュータを宣言します。その後、同じ名前の別のタスクタイプを宣言します。

(アクセスタイプの必要に応じて)タスクタイプを「前方宣言」する場合はtype computer;、他のタイプと同じように記述する必要があります。これは不完全な型であり、タスク型の宣言によって完了することができます。

したがって、例は次のようになります。

type computer;
type computer_ptr is access all computer;
task type computer is
   entry init (a: computer_ptr);
end computer;
于 2012-05-14T14:09:46.257 に答える