Ada 不可见声明错误
Ada non-visible declaration error
我的生成器收到 "non-visible declaration" 错误。我正在将此代码从单个过程转换为使用多个过程和函数。
我已将代码截断了一点 任何对不可见声明错误的解释都将不胜感激。
此代码块中出现不可见声明错误:
WITH Ada.Integer_Text_IO;
USE Ada.Integer_Text_IO;
WITH Ada.Text_IO;
USE Ada.Text_IO;
WITH Ada.Strings;
USE Ada.Strings;
WITH Ada.Numerics.Discrete_Random;
PROCEDURE Project IS
SUBTYPE Guess IS Integer RANGE 1 .. 25;
G : Generator;
CorrectAnswer : Guess;
UserGuess : Guess;
BEGIN
Reset (G);
CorrectAnswer := Random(G);
FOR I IN 1..3 LOOP
GetUserGuess(UserGuess);
PrintCorrectAns(CorrectAnswer);
IF IsCorrect(UserGuess) THEN
Put("You Win!");
ELSE
Put("You Lose!");
END IF;
END LOOP;
End Project;
non-visible declaration at a-nudira.ads:48
和 50
(行号可能因编译器版本而异)是因为 Ada.Numerics.Discrete_Random
,参见 ARM A.5.2(16),是一个通用包,需要实例化使用您需要的任何离散类型。
在你的情况下,我猜是 Guess
:
package RNG is new Ada.Numerics.Discrete_Random (Result_Subtype => Guess);
use RNG;
我的生成器收到 "non-visible declaration" 错误。我正在将此代码从单个过程转换为使用多个过程和函数。
我已将代码截断了一点 任何对不可见声明错误的解释都将不胜感激。 此代码块中出现不可见声明错误:
WITH Ada.Integer_Text_IO;
USE Ada.Integer_Text_IO;
WITH Ada.Text_IO;
USE Ada.Text_IO;
WITH Ada.Strings;
USE Ada.Strings;
WITH Ada.Numerics.Discrete_Random;
PROCEDURE Project IS
SUBTYPE Guess IS Integer RANGE 1 .. 25;
G : Generator;
CorrectAnswer : Guess;
UserGuess : Guess;
BEGIN
Reset (G);
CorrectAnswer := Random(G);
FOR I IN 1..3 LOOP
GetUserGuess(UserGuess);
PrintCorrectAns(CorrectAnswer);
IF IsCorrect(UserGuess) THEN
Put("You Win!");
ELSE
Put("You Lose!");
END IF;
END LOOP;
End Project;
non-visible declaration at a-nudira.ads:48
和 50
(行号可能因编译器版本而异)是因为 Ada.Numerics.Discrete_Random
,参见 ARM A.5.2(16),是一个通用包,需要实例化使用您需要的任何离散类型。
在你的情况下,我猜是 Guess
:
package RNG is new Ada.Numerics.Discrete_Random (Result_Subtype => Guess);
use RNG;