我想将 HTML 响应状态代码数字定义为一种类型,但不允许使用算术运算符,因为这对他们来说没有意义。
type Status_Code is range 100 .. 599;
function "+" (Left, Right : Status_Code) return Status_Code is
begin
pragma Assert (1 = -1);
return Left + Right;
end;
上面关于 GNAT 的代码片段会给出一个错误,说断言将在运行时失败,但是当我将两个数字加在一起时,这是错误的。当尝试对这样的类型进行算术运算时,有没有办法强制编译器错误或至少发出警告?
您可以将其声明为抽象的:
function "+" (Left, Right : Status_Code) return Status_Code is abstract;