两阶段查找 - 需要解释

2024-01-13

编译器使用两阶段查找来编译模板类是什么意思?


模板被编译(至少)两次:

  1. 如果没有实例化,则会检查模板代码本身的语法。
    例如:任何语法错误,例如; etc.

  2. 在实例化时(当确切类型已知时),将再次检查模板代码以确保所有调用对于该特定类型都有效。
    例如:模板可能会调用该特定类型可能不存在的函数。

这称为两阶段查找。

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

两阶段查找 - 需要解释 的相关文章

  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • 使用 bash 仅提取传入电子邮件的正文部分

    I use offlineimap将邮件提取到 Maildir 文件夹中 我想自动解析 Maildir 文件夹中的所有新传入电子邮件 并仅将 发件人 主题 和 正文 作为即时消息发送到其他地方 所以我尝试处理所有邮件 MPATH Mail
  • Python SMTP 错误 10060

    有人可以给我一些关于为什么会出现这种情况的见解吗 mailServer smtplib SMTP smtp gmail com 587 和这个 mailServer smtplib SMTP smtp gmail com 587 正在说这样
  • 如何在 Team City 中运行所有 NUnit 测试?

    我们每次提交时都使用 TeamCity 6 0 构建 VS C 解决方案 构建完成后 另一个测试 TC 项目就会运行 为了让开发人员可以添加 删除 编辑 VS 单元测试项目 如何让 TeamCity 使用 sln 文件或搜索测试 dll 我
  • R中的模糊外连接/合并

    我有 2 个数据集 想要进行模糊连接 这是两个数据集 library data table data1 dt1 lt fread NAME State type ABERCOMBIE TOWNSHIP ND TS ABERDEEN TOWN
  • MacOS 终端:如何使用第二个 ssh 密钥?

    我正在 MacOS 上工作 想要使用第二个 ssh 密钥进行 SSH Git 登录 我在 ssh 中有两个密钥对 id rsa id rsa pub id rsa gitlab id rsa gitlab pub id rsa 和 id r
  • 如何获取 SLURM 数组作业中失败和已完成作业的计数

    我正在使用 slurm 运行多个数组作业 对于给定的数组作业 ID 假设为 885881 我想列出失败作业和已完成作业的计数 像这样的事情 Input
  • async 是否会使其中的所有内容异步?

    据 MDN 报道 async 函数声明定义了一个异步函数 我理解它是因为该函数将被视为异步进程 就像setTimeout或一些数据库请求 例如 在下面的示例中 进程应在数字之间的某个位置输出 main let func2 async gt
  • FiPy 中的固定通量边界条件

    我对此主题有一个后续问题FyPi 中的耦合非线性方程 https stackoverflow com questions 62640821 coupled non linear equations in fypi 当对所有变量使用诺依曼边界
  • 带镀铬的背景中心(错误)

    我有一张居中的背景图像 Chrome 显示偏移一个像素 CSS container background url images header jpg no repeat scroll 50 transparent width 100 hea
  • EF CORE 中的 DbFunctions.TruncateTime LINQ 等效项

    我的 net 应用程序中有以下功能正常的 LINQ public ActionResult Index Dictionary
  • 如何在 SQL Server 中创建参数化 XPath 查询?

    我正在尝试在 SQL Server 中编写一个参数化查询 该查询使用参数值作为 XPath 的一部分 但它似乎没有按照我期望的方式工作 这是我的样本 create table example xmltest xml declare Lang
  • 如何添加本地项目(不是 jar)作为 Maven 项目的依赖项

    我有两个 Maven 项目 我已将它们作为两个模块添加到一个 Intellij Idea 的项目中 项目 B 依赖于项目 A 以下是其 pom xml 文件的简化版本 项目A
  • Android 相机 - 预览尺寸、图片尺寸、裁剪和扭曲

    我的应用程序需要以纵向模式捕获一些给定尺寸 比如说宽x高 的图片 一般情况下 相机不支持我想要的尺寸 宽x高 因此我需要裁剪拍摄的图片以符合我的规格 这个看似简单的程序让我对预览和图片尺寸和格式之间 良好 对应的问题感到疯狂 让我解释 我需
  • android.database.sqlite.SQLiteException:无法将 Android 短信数据库的数据库从版本 58 降级到 55

    当我的 Android 应用程序尝试读取 Android 短信数据库时 我遇到此崩溃 读取android短信数据库的代码类似于以下代码片段 String SMS URI content sms Uri uri Uri parse SMS U
  • 如何在 Windows 上用 C/C++ 为文件预分配空间?

    我正在向使用纯 C 函数的现有代码库添加一些功能 fopen fwrite fclose 将数据写入文件 不幸的是 我无法更改文件 i o 的实际机制 但我必须为文件预先分配空间以避免碎片 这会影响读取期间的性能 有没有比实际将零或随机数据
  • WebRTC 视频不显示

    我正在创建一对一的 webrtc 视频聊天室 但此代码不起作用 我想知道为什么 function hasUserMedia navigator getUserMedia navigator getUserMedia navigator we
  • 从 Android 设备发送 HTTPS/HTTP POST 时出现 UnknownHostException

    我正在尝试创建一个到 Google 服务器的 HTTP POST 来获取 ClientLogin Auth 如所述here http code google com android c2dm index html push 这篇文章的源代码
  • 视图中的 ASP.NET Web Api [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在这种情况下通过 webapi 创建一个登录页面 我不想使用令牌 但视图应该是安全的 不是直接在 URL 中调用 如果用户是管理员
  • CSS 替代行 - 隐藏一些行

    我正在尝试设计表格 使每一行都有不同的颜色 奇数 偶数 我有以下 CSS woo tr nth child even td background color f0f9ff woo tr nth child odd td background
  • 两阶段查找 - 需要解释

    编译器使用两阶段查找来编译模板类是什么意思 模板被编译 至少 两次 如果没有实例化 则会检查模板代码本身的语法 例如 任何语法错误 例如 etc 在实例化时 当确切类型已知时 将再次检查模板代码以确保所有调用对于该特定类型都有效 例如 模板