我正在从事一个通过模板元编程涉及一些 static 多态性的项目。 这些类通过数学运算进行交互,这些运算应该同时识别标量和 class object arguments。多态性和对象-对象交互的一个基本示例是: 在我尝试添加模板专业化来解释与标量的乘法之前,这似乎工作得很好。 似乎这个新的模板专业化 ...
我正在从事一个通过模板元编程涉及一些 static 多态性的项目。 这些类通过数学运算进行交互,这些运算应该同时识别标量和 class object arguments。多态性和对象-对象交互的一个基本示例是: 在我尝试添加模板专业化来解释与标量的乘法之前,这似乎工作得很好。 似乎这个新的模板专业化 ...
我有一个仅为某些类型定义的模板 function: 我想添加一个 std::vector 专门化,只有当 T 可以被序列化时才匹配 仅当 T 自己匹配 serialize() 方法时,我如何才能使它匹配? ...
当前使用 g++-11.3.0,C++20。 我试图让这个 class 在构造时接受两个参数:一个指向 memory 预分配块的空指针,以及 memory 块的大小。 class 然后通过调用next()方法遍历数据块,该方法返回数据块中下一个可用槽的引用,包含在指定类型T中。 编译代码给我错误n ...
我正在尝试为std::bitset class 创建fmt::formatter的专业化。但是,在编译以下程序时,我从 GCC 收到一条不明确的警告消息: 警告信息的一部分:warning: writing 1 byte into a region of size 0 [-Wstringop-ov ...
我想创建一个模板化的 function,它接受并调用一个可调用对象(指向数据成员的指针除外),并将 arguments 传递给它。 我希望模板只接受以下类型:- 函数指针指向成员函数的指针 Lambda 绑定表达式标准::function 函子像这样... 但是第一个参数是接受任何类型,我想创建一 ...
我想创建一些模板类来断言某些类型的数据: 但是,我想以编程方式进行,所以我考虑定义一个支持类型的“列表”: 并将该“列表”传递给另一个模板,该模板通过递归为列表中的每个类型生成“assertType”模板。 就像是: 所以我可以使用: 类型不是其中之一的任何其他模板都应将其 v 值设置为 fals ...
我需要一个图像 class 模板,它可以处理具有不同维度和不同格式的图像。 而且我还想为 1D、2D 和 3D 图像定义不同的 class 模板特化(只有这三个,其他将未定义 - 这样它们就不能使用)。 摘要代码:enum image_format {R, G, B, RG, GB, RB, RGB ...
我的代码的一个简化示例: 我收到如下错误: 非命名空间范围内的显式特化为什么模板专业化在这里不起作用? 如何根据传入的类型指定成员函数的行为? ...
在下面的 class 中,我尝试将类型擦除的 function 专门化为空类型,以用于默认初始化的情况。 但是,这会产生以下error: explicit specialization in non-namespace scope 。 现在我已经完成了我的研究并了解到 gcc 由于某种原因不允许在 ...
我尝试编写一个元函数type_par_same_as ,只要true_type的模板参数与给定类型匹配,它就会选择 true_type : 演示 这是我得到的: 我的方法是原始模板模板参数只接受模板的任何特化,例如std::vector (无类型)。 然后我 SFINAE-out class 与 ...
我不完全确定这是否可行,或者如果可行的话我需要使用什么语法,但我想制作一个 class 公开派生自可变参数 arguments 中提供的所有类,以便我可以从该单一派生class,从而派生自提供给它的所有类。 我想要做的是声明如下内容: 因此 InheritFrom 模板 class 有效地公开派生 ...
我有一个模板基础 class,它带有模板方法 Foo 和一个定义枚举 class 的概念。我想创建一个派生 class,它将为特定枚举 class 值创建方法 Foo 的特化,如下所示: 然而,以下内容不会编译,声明模板 ID 'Foo<A::a, B::b> for 'void De ...
我有两个 class 专业。 我希望其中一个在 T::A 存在时使用,另一个在 T::B 存在时使用,这在实践中应该是相互排斥的。 我正在使用 std::void_t< decltype(... ) > 来测试是否存在。 我希望该表达式无法针对一个或另一个专业化进行评估,因此我希望 S ...
可以使用 RTTI 在运行时识别数据类型,但我们如何在编译时识别数据类型,甚至可能吗? ...
为什么B<int>::bar<int> == true以及如何解决这个问题? 编辑:看起来问题是 B 专业化不正确 出于某种原因,这些代码行似乎没有将B<int>::bar<int>设置为false : ...
当我尝试使用不完整(部分指定)的模板化类型强制进行模板专业化时,我遇到了一些问题。 让我们考虑这个过于简单的示例:我有一个模板 function 声明,我在相应的 C++ 文件中为某些常见类型提供了强制规范。 在.h文件中: 在.cpp文件中: 例如,我想对glm 向量(来自 OpenGL 数学库) ...
这是 class 的模板 我想为它做一个模板专业化。 例如,我定义class Bar 。 所以我想对class Bar进行专业化,但我想保留unsigned int size 。 我怎么做? ...
我有两个函数,一个接受可变参数模板,另一个接受std::vector<std::string> 。 是否有可能覆盖可变参数模板 function 而无需额外的 arguments? 我尝试了几件事,但没有用。 总是调用带有可变参数模板包的 function。 编译器真的不能确定矢量特化吗 ...
我在 header 文件中有一个 class ,它可以自行编译。 我省略了 class 用户的定义,它只是带有两个设置器的用户名/密码。 但是,当我从 main 调用 signUp 我得到了这个非常长的错误,我无法理解。 有人可以解释这里发生了什么吗? 似乎我无法从 aa 用户创建指针,但我仍然不 ...
在我的带有模板 Helix Ultimate 的网站中,它显示了我想隐藏的 2 个元素 - 或显示:无。 但是,当我将相同的代码放入自定义 css 时,虽然在浏览器检查器中编辑它们确实有效,但它并没有生效。 是否有其他方法可以做到这一点或找出覆盖自定义 css 的内容。 该网站是https://wo ...