xlC 从模板函数问题中进行静态函数查找

2023-11-26

当我在源代码中寻找有关编译问题的线索时,我遇到了这个错误报告(针对 Mozilla 的 JavaScript 引擎源代码)与函数查找相关。引用错误报告:

TypedArrayTemplate(显然)是一个模板,它引用 INT_TO_JSVAL,一个静态内联函数,而不用“::”作为前缀。这会破坏 xlC,因为它无法解析 INT_TO_JSVAL。如果在模板参数的上下文中未找到非限定名称,则该标准不要求考虑静态。 g++ 执行此后备操作,xlC 则不执行此操作。

来自编译器的信息性消息:

(I) Static declarations are not considered for a function call if the function is not qualified.

就我而言,失败的代码类似于:

namespace N
{

static bool foo (std::string const &);

template <typename T>
void bar (T const &, std::string const & s)
{
    // expected unqualified call to N::foo()
    foo (s);
}

void baz (std::string const & s)
{
    bar (s);
}

} // namespace N

xlC 实现的行为真的正确吗? 2003年或2011年的标准在哪里谈到了这个?


在 C++11 之前,这是正确的行为:模板中使用的名称的非限定名称解析被定义为仅查找具有外部链接的函数。

C++03 第 14.6.4.2 节候选函数 [temp.dep.candidate] 第 1 段:

对于依赖于模板参数的函数调用,如果函数名称是 unqualified-id 但不是 template-id,使用通常的查找规则(3.4.1,3.4.2)找到候选函数,除了:

  • 对于使用非限定名称查找(3.4.1)的查找部分,仅具有外部的函数声明 找到来自模板定义上下文的链接。

  • 对于使用关联命名空间(3.4.2)的查找部分,仅具有外部的函数声明 找到在模板定义上下文或模板实例化上下文中找到的链接。

在 C++11 中更改为:

对于依赖于模板参数的函数调用,可以使用通常的方法找到候选函数 查找规则(3.4.1、3.4.2、3.4.3),除了:

  • 对于使用非限定名称查找(3.4.1)或限定名称查找(3.4.3)的查找部分,仅 找到来自模板定义上下文的函数声明。

  • 对于使用关联命名空间(3.4.2)的查找部分,仅在以下位置找到函数声明: 找到模板定义上下文或模板实例化上下文。

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

xlC 从模板函数问题中进行静态函数查找 的相关文章

  • 当其源是 https uri 时如何使 wpf MediaElement 播放

    在 wpf 独立应用程序 exe 中 我在主窗口中包含了 MediaElement
  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 从时间列表中查找最接近的时间

    所以 这是场景 我有一个带有创建时间的文件 我想从该文件的创建时间最接近或相等的时间列表中选择一个时间 完成此操作的最佳方法是什么 var closestTime listOfTimes OrderBy t gt Math Abs t fi
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • 如何设置消息队列的所有者?

    System Messaging MessageQueue 类不提供设置队列所有权的方法 如何以编程方式设置 MSMQ 消息队列的所有者 简短的答案是 p invoke 对 windows api 函数的调用MQSetQueueSecuri
  • 编写具有多种类型的泛型扩展方法时的类型推断问题

    我正在为 IEnumerable 编写一个通用扩展方法 用于将对象列表映射到另一个映射对象列表 这就是我希望该方法的工作方式 IList
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • C 与 C++ 中的 JNI 调用不同?

    所以我有以下使用 Java 本机接口的 C 代码 但是我想将其转换为 C 但不知道如何转换 include
  • 如何对STL向量进行排序?

    我想排序一个vector vector
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 值和类型的简洁双向静态 1:1 映射

    我将从我想象如何使用我想要创建的代码开始 它不必完全像这样 但它是我在标题中所说的 简洁 的一个很好的例子 就我而言 它是将类型映射到相关的枚举值 struct bar foo
  • 初始化列表在 VC10 中不起作用

    我在 VC 2010 中编写了这个程序 class class1 public class1 initializer list
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request

随机推荐

  • JavaScript 数组元素转字符串

    我有一个简单的数组 我想生成包含数组所有元素的字符串 例如 数组设置如下 array 0 uri0 array 1 uri1 array 2 uri2 并且输出字符串必须是 teststring uri0 uri1 uri2 我尝试采用以下
  • Xml 命名空间和 C# csproj

    我正在使用 powershell 2 0 编辑大量 csproj 文件 编辑的要求之一是添加具有不同条件的新PropertyGroup 请检查下面的示例
  • 如何阻止ajax调用(我希望它阻止)

    Ajax 使用回调 因为它是A同步 我希望调用远程 URL 块 直到有答案 与 Ajax 完全相同 但没有异步部分 或者我应该说我想要进行 JAX 调用 是否有任何技术可以使以下情况发生 使用 JQuery 使用 JQuery 或其他任何解
  • 使用不记名令牌在 JavaScript 中加载图像

    我正在 JS 中加载图像 如下所示 var img new Image img onload function img src src 这可行 但我意识到我必须使用 OAuth 2 与应用程序的其余部分一样 在服务器端保护我的图像 这只会导
  • 计算行数或列数

    我有一些图像要拼接到精灵表中 如何计算行数和列数以均匀地适合偶数矩形 没有空格 一些例子 6张图片应该变成2行3列 7 张图片应该变成 1 行 7 列 8张图片应该变成2行4列 9张图片应该变成3行3列 10张图片应该变成2行5列 希望这有
  • 使用 angular.js 路线手动刷新时仍然出现“未找到”

    在阅读了有关 Angular js 路线的大量文章和 stackoverflow 问题后 当我进行手动刷新时 我仍然收到 未找到 错误 Steps 浏览到localhost gt 由于我的配置 如下 我被带到localhost home 视
  • 如何使用 twitter4j 更改 twitter 流 api 上的关键字?

    我正在使用 twitter4j 连接到 Stream API 我从这篇文章中了解到 更改 Twitter 流过滤器关键字而不重新打开流 在连接打开时无法更改关键字 我必须断开连接并更改过滤器谓词 然后重新连接它 我想知道是否有任何代码示例可
  • Meteor - 将异步函数返回到车把模板?

    我正在尝试基于 Flickr API 调用生成 Flickr url 然后将该结果返回到handlebars js 模板 我正在努力寻找解决异步流程的方法 我尝试创建一个回调函数 但我仍然不确定如何将定义的对象或变量获取到 HTML 模板中
  • 设置地图的位置中心 - GMaps v2 - Android

    如何使用 Maps v2 将地图中心设置为特定位置 这就是我使用 GMaps v1 的方法 public void setCenter LatLng point if point latitude 1000000 0 point longi
  • 终止无限运行的 JavaScript 函数

    举个例子 var runInfinite function while 1 Do stuff setTimeout runInfinite 0 是否有可能打破这个 runInfinite 函数形式运行无限 我的意思是有可能吗kill这个函数
  • Jetty:HTTP 错误:503/服务不可用

    我是 Jetty 的新手 我尝试在这里运行示例程序 http www codeproject com Articles 128145 Run Jetty Web Server Within Your Application 但我的页面上收到
  • Application_End 到底什么时候被调用以及如何手动导致这种情况?

    我知道当应用程序池被 IIS 回收时会调用该事件的事件处理程序 但是什么时候会发生这种情况呢 如果使用内置的 Visual Studio 服务器 Cassini 怎么样 如果我终止服务器进程 Application End 会被解雇吗 UP
  • 在多处理中创建 Singleton 类

    我使用创建 Singleton 类元类 it 在多线程中工作良好并只创建 Singleton 类的一个实例 但在多处理中 它总是创建新实例 import multiprocessing class SingletonType type me
  • 如何在没有函数/服务器端语言的情况下将 postgresql 9.4 jsonb 转换为对象

    是否可以在不创建函数且不使用任何服务器端编程语言的情况下转换 postgresql 9 4 jsonb 数据 CREATE TABLE test id SERIAL PRIMARY KEY data JSONB INSERT INTO te
  • fiddler 图标蓝色 < > 尖括号的含义

    Fiddler 中这个图标的含义是什么 它没有列在help 该图标用于响应Content Type Content Type text html
  • 使用 MFMailComposeViewController 发送 HTML 格式的电子邮件

    我正在使用 HTML 内容格式化邮件并使用 MFMailComposeViewController 发送它 但是在接收方 邮件未以 HTML 格式到达 只有纯文本可见 我该如何解决此问题 提前致谢 请务必使用以下行设置消息正文 MFMail
  • Magento - 扩展 Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection 类

    好的 这是我最近在这里问的另一个问题的引申 基本上 我想延长Mage Catalog Model Resource Eav Mysql4 Product Collection类 因此我可以为产品系列添加一些额外的过滤器 这些过滤器可以在整个
  • 如何从短网址获取长网址?

    使用 Ruby 如何将短 URL tinyURL bitly 等 转换为相应的长 URL 我不使用 Ruby 但总体思路是向服务器发送 HTTP HEAD 请求 服务器将返回 301 响应 永久移动 其中包含Location包含 URI 的
  • puppeteer:如何等待 SPA 中的页面?

    我正在尝试使用 puppeteer 浏览 SPA 我在这里面临的问题是我无法等待页面加载然后继续我的程序 我填写了一个表单 然后点击提交 根据表单的内容 可以加载不同的页面 所以我无法使用page waitFor Selector 因为根据
  • xlC 从模板函数问题中进行静态函数查找

    当我在源代码中寻找有关编译问题的线索时 我遇到了这个错误报告 针对 Mozilla 的 JavaScript 引擎源代码 与函数查找相关 引用错误报告 TypedArrayTemplate 显然 是一个模板 它引用 INT TO JSVAL