【发布时间】:2015-10-08 04:05:48
【问题描述】:
我试图在 Ada 中创建一个枚举类型的向量,但编译器似乎期望相等函数重载。我如何告诉编译器只使用默认的 equal 函数。这是我所拥有的:
package HoursWorkedVector is new Ada.Containers.Vectors(Natural,DAY_OF_WEEK);
--where Day of week is defined as an enumeration
当我尝试编译时,我收到消息:
no visible subprogram matches the specification for "="
我需要创建一个比较函数来获得一个枚举类型的向量吗?提前致谢。
【问题讨论】:
-
DAY_OF_WEEK 是否定义在与 HoursWorkedVector 相同的包中?另外,DAY_OF_WEEK 是重命名声明吗?
-
我之前评论中的“重命名声明”是一个错误。我应该问,DAY_OF_WEEK 是子类型声明吗?
-
能否请您发布导致错误的minimal complete verifiable example?现在,我认为我们遗漏了太多信息。
-
看来您不需要其余的代码,因为您的第一个问题直接引导我找到解决方案。事实上,DAY_OF_WEEK 确实是在不同的包中定义的。我只是没有在这里包含名称,因为我认为它无关紧要,但是当我添加“use”子句时,文件编译顺利,所以,既然我讨厌使用“use”子句,有没有办法在没有“使用包”子句的情况下创建我的向量类型?
-
package HoursWorkedVector is new Ada.Containers.Vectors(Natural, My_Other_Package.DAY_OF_WEEK, My_Other_Package."=");
标签: comparison containers enumeration ada