Ada 中类型/包别名的单独声明

2024-01-07

我想声明一些“用户定义的编译器常量”,以使我的规范文件尽可能保持“常量”。这在 C++ 中很常见,例如:

// misc/config.hh
namespace misc
{
  typedef std::shared_ptr<A> A_ptr; 
  namespace arch = ibmpc;
}

// misc/code.hh
#include "misc/config.hh"
namespace misc
{
  void function p(A_ptr a);
}

这将是在 Ada 中:

-- misc.ads
package Misc is
  use Types; ----> forbidden !

  procedure P(A : A_Access);
end Misc;

-- misc-types.ads
package Misc.Types is
  type A_Access is A'Access;
end Misc.Types;

当然这不起作用,因为use是一个上下文关键字...因此我的问题是:如何在 Ada 中做一些具有相同结果的事情?


我认为这是从 C++ 原始版本到 Ada 的合理映射:

首先,我认为或多或少对应于您的namespace misc,在文件中misc.ads,

package Misc is
end Misc;

那么,对应于config.hh,在文件中misc-config.ads,

package Misc.Config is
   type A is (For_Example, An_Enumeration);
   type A_Access is access A;
end Misc.Config;

(当然,这也可以引用类型Misc)。那么,对应于code.hh,在文件中misc-code.ads,

with Misc.Config;
package Misc.Code is
   use Config;
   procedure P (A : A_Access);
end Misc.Code;

我个人不会use Config;,至少在规范中 - 它可能会让人很难弄清楚某些东西是在哪里定义的。注意,你可以说use Config; or use Misc.Config;如图所示,因为您是Misc;在上下文子句中,这也可以,你必须use Misc.Config;.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ada 中类型/包别名的单独声明 的相关文章

  • pyproject.toml 文件的用途是什么?

    背景 我正准备尝试从 GitHub 下载的 Python 包 发现它没有setup py 所以我无法安装它 pip install e
  • 为什么要用耳朵而不是战争?

    I read this https stackoverflow com questions 3923514 ejb explanation ear vs war and this https stackoverflow com questi
  • 如何检查一个元素是否属于一种子类型或另一种子类型?

    刚刚了解了 Ada 中的枚举和类型 决定写一个小程序来练习 with Ada Text IO use Ada Text IO with Ada Integer Text IO use Ada Integer Text IO procedur
  • 为什么字符串需要用初始值初始化?

    我有一根绳子lx String我想稍后在代码中设置该值 但出现错误unconstrained subtype not allowed need initialization provide initial value or explicit
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: (名称错误[已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的项目位
  • 什么是“libgnarl”?

    What is libgnarl 我在不同的地方找到了对此的引用 例如在 gcc 源代码中或 gprbuild 的详细输出中 gprbuild 特别报告了有关决定是否libgnarl甚至是必要的 所以它显然是一个可选库 但实际的库是什么 我
  • 打包使用 ImageMagick C API 的应用程序

    我创建了一个使用 ImageMagick C API 的小型 Windows 应用程序 但遇到了一些困难 该应用程序运行良好 我已准备好与我们组织中的其他一些人共享它 但如果不在目标计算机上安装 ImageMagick 我找不到有关分发此类
  • 用pynsist打包PyGObject Python 3程序?

    我想用 pynsist 打包一个 Python3 PyGObject 程序 该存储库有一个 PyGTK 的示例 它让我认为更改该示例应该不会太难 该示例可以在这里找到 https github com takluyver pynsist t
  • Ada 中类型/包别名的单独声明

    我想声明一些 用户定义的编译器常量 以使我的规范文件尽可能保持 常量 这在 C 中很常见 例如 misc config hh namespace misc typedef std shared ptr a A ptr namespace a
  • matlab中的“+”打包或模块化编程:类似于python的导入?

    我有 Java 或 Python 等语言的背景 其中通过打包系统和导入指令 也称为命名空间别名 启用模块化编程 从历史上看 MATLAB 解决命名冲突等问题的方法可以归结为设置 使用 MATLABPATH 使用前缀重命名 扩展标识符等 到目
  • 如何在不使用子进程的情况下从 python 自动脚本中运行 python 'sdist' 命令?

    我正在编写一个脚本来自动打包 自制 python 模块并将其分发到远程计算机上 我正在使用 Pip 并创建了一个 setup py 文件 但随后我必须调用子进程模块来调用 python setup py sdist 命令 我已经查看了 di
  • 如何在没有 MANIFEST.in 文件的情况下包含 package_data?

    我怎样才能包括package data for sdist没有 MANIFEST in 文件 我的 setup py 看起来像这样 import setuptools setuptools setup name foo version 20
  • Python 守护进程打包最佳实践

    我有一个用 python 编写的工具 通常应该作为守护进程运行 打包此工具进行分发的最佳实践是什么 特别是应如何处理设置文件和守护进程可执行文件 脚本 相关地 是否有任何通用工具可用于设置守护进程以在启动时运行 以适合给定的平台 即init
  • 无法解析的父 POM 无法找到工件,并且“parent.relativePath”指向错误的本地 POM

    我是 Maven 新手 我有一个项目 我尝试使用 maven3 构建 当我运行命令时mvn X clean install我收到错误了 root localhost mvn X clean install Apache Maven 3 0
  • 使用 SPARK 证明选择排序算法

    我试图证明我在 Ada 中的选择排序实现是正确的 我尝试了一些循环不变量 但使用 gnatprove 只能证明内部循环的不变量 package body Selection with SPARK Mode is procedure Sort
  • 打包Python项目时设置zip_safe为True有什么好处?

    setuptools 文档仅说明 为了获得最佳性能 Python 包最好安装为 zip 文件 然而 并非所有包都能够以压缩形式运行 因为它们可能期望能够像正常操作系统文件一样访问源代码或数据文件 因此 setuptools 可以将您的项目安
  • Ada 的命令行参数

    我正在编写一个 Ada 程序 该程序应该对字母字符进行大小写转换 该程序使用 1 2 或 3 个命令行参数 我几乎已经把事情写下来了 但我不知道如何进行论证 命令行参数是 单个字符指定是否要进行大写转换或小写转换 应用于输入 U 或 u 表
  • [“03C0”]如何匹配附件P中的语法?

    我正在编写一个工具来使用 2005 年附录 P 中提供的语法来解析 Ada 源文件 通过下面的代码 我知道 03C0 代表 希腊字母Pi 但它是合法的变量名吗 01 package Ada Numerics is 02 Pi constan
  • 打包用来部署跨平台?

    在 Windows 上 应用程序通常打包为 MSI 在 Redhat Linux 上打包为 RPM 可用于将应用程序部署到所有平台 包括不同风格的 UNIX 和 Windows 的最佳开源打包方法是什么 内容包括 exe unix 二进制文
  • python 命令行应用程序的最佳布局是什么?

    什么是正确的方法 或者我会满足于good方式 布置一个中等复杂度的命令行 python 应用程序 我使用 Paster 创建了一个 Python 项目框架 它为我提供了一些文件 myproj init py MyProj egg info

随机推荐

  • 什么是 JSP 上下文?

    我想知道这个 java 对象到底是什么以及它的主要用途是什么 我看过java文档 但这让我更困惑 它是否有会话 请求 应用程序等关系范围 JspContext JspContext 令人困惑 因为它似乎没有做任何 ServletContex
  • 如何在Python中反转字典(其值是列表)? [复制]

    这个问题在这里已经有答案了 我想编写一个函数 它接收字典作为输入参数并返回输入字典的反向值 其中原始字典的值用作返回字典的键 原始字典的键用作返回字典的值返回的字典解释如下 dict Accurate exact precise exact
  • 如何使用 septice 在明火中创建持久房间?

    我正在使用以下内容iq在 openfire 中创建持久房间的消息 var configiq iq to chatObj getActiveChatRoomName chatObj groupChatService type set c x
  • 使用js将字符串附加到图像src

    我有一个页面 里面有 img src images product whatever image jpg alt 我希望在加载页面时 将字符串 Action thumbnail 附加到 src 的值 使其成为src images produ
  • 为什么stream api不是为异常处理而设计的?

    Fixtures BiConsumer
  • 使用 Python 读取 UTF8 CSV 文件

    我正在尝试使用 Python 读取带有重音字符的 CSV 文件 仅限法语和 或西班牙语字符 基于 csvreader 的 Python 2 5 文档 http docs python org library csv html http do
  • 使用光流进行特征跟踪

    我找到了一个类似的问题 https stackoverflow com questions 9701276 opencv tracking using optical flow 9702540 comment13031247 9702540
  • 将材质图标与样式组件一起使用

    刚刚开始使用样式组件 有没有办法设置第三方图标 例如 Material Design Icon 的样式 这是我到目前为止的代码 但显然它不起作用 相关代码位于内容组件下方 Thanks const MaterialIcon props gt
  • localStorage html5 功能在 Samsung Android 设备上的 WebView 中不起作用

    我有一个用 WebView 包装的 html5 应用程序 为了在页面之间存储和检索用户输入值 我使用本地存储html5 功能 它在我的 Nexus 4 Android 4 4 4 上运行良好 但在 Samsung Galaxy Tab 2
  • 罗马尼亚语区域设置

    经过谷歌搜索一段时间后 我发现 Android 2 3 版本确实支持它 但我没有找到它支持的最低版本 如果 Android 2 2 版本不支持罗马尼亚语那么有什么替代方案 感谢您的关注 这是已解决的类似问题 Android 支持的语言 区域
  • 使用正则表达式检查文本框不允许小数

    我想创建一个 TextChanged 事件来检查输入文本是否符合特定条件 如果不符合则删除最后输入的字符 在本例中 标准是数字 1 位小数和 1 位分数 我正在测试仅用于数字和小数的正则表达式 并遇到了问题 我尝试了几种不同的表达式 我不擅
  • 如何在 Laravel 代码中嵌入视频

    我正在开发一个项目 在该项目中 我将 youtube 视频链接存储在数据库中 然后检索这些链接并使用刀片模板引擎尝试将它们嵌入到页面中 我使用循环将视频放入页面中 由于某种原因 我在浏览器中看不到任何视频 它覆盖了提到的空间 但不渲染任何东
  • QSqlQuery size() 总是返回-1

    QSqlQuery query QString queryText SELECT FROM section query exec queryText qDebug lt lt query size always 1 while query
  • ViewPager Fragments 未在 onCreate 中启动

    我似乎在更新 ViewPager 中使用的片段时遇到问题 无论我尝试使用 onCreate onCreateView 还是 onResume 以下是我在 MainFragment 中设置 ViewPager 的方法 public View
  • 绘制多条徒手折线或曲线图 - 添加撤消功能

    我正在尝试创建一个具有撤消和重做功能的简单绘图应用程序 我假设您可以将要绘制的内容添加到列表中 并调用该列表来绘制所有内容 然后撤消应该只是删除最后添加的项目并再次重新绘制所有内容 问题是 如何将绘制的内容添加到列表中并使用该列表撤消 我正
  • 修改awk中的文本文件

    我有一个文本文件 如以下小示例 chr1 HAVANA transcript 12010 13670 gene id ENSG00000223972 4 transcript id ENST00000450305 2 gene type p
  • 创建一个ant文件来运行其他ant文件

    I saw this https stackoverflow com questions 2108862 ant for other ants相关问题 但我的情况不同 所以再次询问 基本上 我有 12 个 ant 文件 我必须按特定顺序运行
  • 如何捕获 OSX 所有正在运行的进程的列表并将它们保存为 Xcode / Cocoa 中的文件?

    我想要捕获 OSX 所有正在运行的进程的列表 并将它们保存为 Xcode Cocoa 中的文件 我用谷歌搜索了这个 我发现的是 我的工作区正在运行的应用程序 我不知道该怎么做 请帮忙 谢谢你 正如中所解释的QA1123 http devel
  • 关闭动画、模态、Angular-UI

    是否可以关闭 Angular UI 中模态指令的动画 http angular ui github io bootstrap http angular ui github io bootstrap 选项里找不到啊我应该修改源吗 或者当您想要
  • Ada 中类型/包别名的单独声明

    我想声明一些 用户定义的编译器常量 以使我的规范文件尽可能保持 常量 这在 C 中很常见 例如 misc config hh namespace misc typedef std shared ptr a A ptr namespace a