有没有办法在 Ada 中禁用特定类型的算术运算符?

问题描述 投票:0回答:1

我想将 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 的代码片段会给出一个错误,说断言将在运行时失败,但是当我将两个数字加在一起时,这是错误的。当尝试对这样的类型进行算术运算时,有没有办法强制编译器错误或至少发出警告?

types ada gnat
1个回答
1
投票

您可以将其声明为抽象的:

function "+" (Left, Right : Status_Code) return Status_Code is abstract;
© www.soinside.com 2019 - 2024. All rights reserved.