templates 相关问题

模板标签用于多种上下文:通用编程(尤其是C ++),以及使用模板引擎生成数据/文档。在实现繁重的问题上使用此标记时 - 标记实现编写的代码语言。

使用 clang 或 gcc,如何列出目标文件 (.o) 中实例化的模板?

我有一个大型程序,它生成的目标文件比我预期的大得多。我怀疑程序中的某个地方有人正在使用低效的模板元编程,这是

回答 1 投票 0

如何将模板参数传递给对象而不调用其成员函数?

我可以将模板参数传递给对象的成员函数,但不能传递给对象本身。 这有可能吗? #包括 #包括 使用命名空间 std; 类...

回答 1 投票 0

如何从可变参数模板类创建元组并在 C++ 中调用每个元素作为参数的成员函数?

我有一个带有可变参数模板参数的类,我正在尝试编写一个成员函数来创建一个包含可变参数的容器。我的方法是从

回答 1 投票 0

访问 Azure Devops yaml 管道模板中的 resources.repositories

在我们的代码库中,有两个常用的资源存储库别名用于模板存储库。 简短版本:是否可以通过 resources.reposito 以某种方式访问正在使用的别名...

回答 1 投票 0

C++ 静态模板类成员变量:C++ 头单元中不允许使用非内联外部定义

我想启动一个使用模块的新项目,因此必须将仅包含头文件的库放入头文件单元中。其中之一(sol2)在使用...编译时触发了错误(标题中的错误)

回答 1 投票 0

使用!包括格式错误的结果

我有一个如下所示的cloudformation模板: AWSTemplateFormat版本:'2010-09-09' 说明:静态 RSS 堆栈 参数: 授权名称: 类型:字符串 描述:唯一身份验证名称...

回答 1 投票 0

如何解决网页渲染中可能存在冲突的url

当我尝试加载页面时,我得到另一个页面...... 我尝试加载一个名为 wikiPage 的页面,如下面的 url 描述所示,但我得到另一个链接到名为

回答 1 投票 0

使用 lambda 和“修复函数”快速记忆匿名递归函数

背景 我最近了解到,定点组合器可以轻松定义递归函数而无需命名它们。 它主要用于函数式编程语言(例如fix fun...

回答 1 投票 0

从模板创建PDF

我需要用c#创建一个PDF文件。我必须需要一个模板(例如可编辑的 PDF 或 HTML 模板)。 在此模板中,我必须插入文本和图片。 我不知道该怎么做......

回答 2 投票 0

如何使用 gmock (Google Mock) 模拟模板类?

我有一个类模板如下: 结构 DailyQuote_t; 结构 TickQuote_t; 模板 类 QtBuffer_t { 民众: 虚拟 int size() const noexcept = 0; }; 测试时...

回答 2 投票 0

C++ 为所有模板专用类定义成员函数

我有一个模板类 foo,它以多种不同的方式进行专门化。 其中一些有很多依赖于专门函数的通用代码。 例如,请考虑以下情况: #

回答 1 投票 0

在 C++ 中将参数传递给 std::is_nothrow_assignable 类函数的正确形式是什么?

我正在研究 no except 说明符和 no except 运算符的功能。 我知道有一些类型特征可以替代使用 noexcept 运算符...

回答 1 投票 0

如何反转模板依赖关系?

如果我想制作一个通用类模板ResourceManager,它调用序列化函数(或模板)来序列化其内容,如何使对下面的序列化的调用可编译? 我不想

回答 1 投票 0

命名空间会影响模板函数实例化的顺序吗?

如果我写下面的代码: /** 两个元素的最小值 */ 模板 T min(常量 T a, 常量 T b) { 返回(< b) ? a : b; } /** Min of multiple elements */ template 如果我写下面的代码: /** Min of two elements */ template <typename T> T min(const T a, const T b) { return (a < b) ? a : b; } /** Min of multiple elements */ template <typename T, typename... Ts> T min(const T first, const Ts... others) { T result = first; auto temp = { (result = min(result, others), 0)... }; (void)temp; return result; } 然后创建一个具有自己的覆盖的新类 min: /** Vec2 */ struct Vec2 { float x, y; Vec2(const float _x, const float _y) : x(_x), y(_y) {} }; /** Min override for Vec2 */ Vec2 min(const Vec2 a, const Vec2 b) { return Vec2(min(a.x, b.x), min(a.y, b.y)); } 最后,在main: extern Vec2 getNewVec2(); int main() { Vec2 v1 = getNewVec2(); Vec2 v2 = getNewVec2(); Vec2 v3 = getNewVec2(); Vec2 v_min = min(v1, v2, v3); } 一切都按预期编译。但是,如果我将 min 函数包装在 math 命名空间内(包括 Vec2 的覆盖),并将对 min 的调用替换为 math::min,则它无法编译,并显示“不匹配 '操作员<' (operand types are 'const Vec2' and 'const Vec2')". 看起来带有多个参数的 min 函数在编译时正在寻找对 math::min 的合适调用(以 auto temp = ... 开头的行)并且无法找到 Vec2 覆盖,因此它尝试使用顶部的通用模板版本,无法编译,因为没有 < 运算符重载 Vec2。 如果我将 min below 的多参数版本移至 Vec2 的 min 重载,那么无论我是否使用命名空间,它都会再次正确编译。尽管上面的代码片段旨在位于多个文件中,但这实际上并不是一个可行的解决方案,但它确实支持这样的理论:引入命名空间后,模板函数的顺序突然变得重要。 有没有办法允许多参数 min 函数在使用 Vec2 命名空间时找到 math 覆盖,就像在全局命名空间中一样? 导致问题的不是命名空间本身,而是调用函数的方式。 如果您将 min 称为不合格名称,则除了通常的不合格名称查找之外,还会执行 ADL。 模板内的 ADL 查找是从实例化点执行的,而不是从定义点执行的。然而,通常的限定查找仅从模板的定义点执行。 因此,在两个函数模板中,如果您稍后声明 Vec2 重载,那么它们只能通过 ADL 找到新的重载,而不能通过通常的非限定查找。因为您正确地将 min 的 Vec2 重载放在与 Vec2 类本身相同的命名空间范围中,所以 ADL 在需要时始终会找到它。但是,如果您使用限定名称调用函数,则不会执行 ADL。因此,如果在 min 模板本身之后声明,则不可能找到 Vec2 的 min 重载。要按照您想要的方式保持 min 可针对其他类型进行自定义,您需要在 min 模板中使用非限定调用,并将 min 的 Vec2 重载保留在与 Vec2 相同的命名空间范围内。这也正是操作符重载的工作原理。然而,选择这个名字min有点危险。标准库中已经有一个名为 min 的函数,如果您尝试将 std:: 中的类型与 min 一起使用,该函数也将通过 ADL 参与,可能会导致意外的重载决策选择。

回答 1 投票 0

显式专门化零参数的模板化构造函数

假设有以下课程: JsonDocument 类 { 民众: 使用 RootType = size_t; constexpr 静态 RootType ObjectRoot = 1; constexpr 静态 RootType ArrayRoot = 2; 模板< ...

回答 1 投票 0

Odoo16:模板中使用的 docs 变量在哪里定义?

我已经创建了2条记录、操作报告和pdf模板,但我从未在模型中定义过docs变量,那么Odoo如何理解它,或者它是在某个地方默认定义的?那又怎样...

回答 1 投票 0

带有命名参数的 vsprintf 或 sprintf,或者 PHP 中的简单模板解析

我正在寻找一种为 sprintf 或 printf 使用命名参数的方法。 例子: 冲刺( '上次登录时间是 %hours 小时, %分钟、%秒秒前' ,$小时,$分钟,$秒...

回答 10 投票 0

将包含点分隔值的大括号占位符替换为二维数组中的值

我有一段文字,例如: $paragraph = "你好{Customer.name}, 您今年 {Customer.age} 岁。您出生于 {Customer.birthdate} 年”; 我想用

回答 3 投票 0

Ansible 模板引擎的外部使用

我想在另一个项目中使用ansible优秀的模板引擎(基于Jinja2),它使用模板变量。 模板变量可以使用所有 ansible 查找和过滤器。 我愿意...

回答 2 投票 0

计算模板模板类型的参数

以下代码适用于 GCC(至少在 GCC 10.1.0 中),但不适用于 MSVC 和 Clang。我不确定它在 C++ 标准中是否合法。 我正在尝试计算模板模板类型中的参数。 是

回答 6 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.