cost 69 ms
是否可以使用需要不存在 function 的 SFINAE 来定义 function? - Is it ok to define a function using SFINAE that requires non-existance of the function?

此问题中的代码基于此答案。 我对它如何产生 output 以及它是否都定义良好感到有点困惑 Output 与 gcc (与 clang 和 msvc 相同): 如果is_fooable_v<moo>为false ,则 SFINAE 不会丢弃foo模板,然后moo为“fooable”, ...

在惰性函数式语言的模板实例化求值器中实现“case”表达式有困难吗? - Difficulty of implementing `case` expressions in a template-instantiation evaluator for a lazy functional language?

我正在关注 SPJ 的“实现函数式语言:教程” ,我坚持练习 2.18(第 70 页),转载如下。 这是关于书中描述的简单惰性函数语言的模板实例化评估器的章节(类似于迷你 Miranda/Haskell): 练习 2.18。 为什么很难将case表达式引入模板实例化机? (提示:想想instan ...

在未使用的默认成员初始值设定项中使用仍然是 ODR 使用吗? - Is use in an unused default member initializer still an odr-use?

在默认成员初始值设定项中使用是否仍然是 odr-use,即使默认成员初始值设定项未被任何构造函数使用? 例如,这个程序是否格式错误,因为g<A>是 odr-used 并且因此它的定义被隐式实例化? MSVC 认为不。 Clang、GCC 和 ICC 认为是的。 https://g ...

为什么 = default 成员初始值设定项请求实例化 unique_ptr 析构函数而 {} 不? - Why does = default member initializer request instantiation of unique_ptr destructor while {} does not?

这是这个问题的后续: Does PIMPL idiom actually work using std::unique_ptr? 完整的例子使用了多个文件,所以为了这个问题我将在这里减少它。 完整的工作示例在这里: https://wandbox.org/permlink/AepAJYkbRU4b ...

C++:实例化模板方法基于另一种方法的重载 - C++ : Instanciate template method based on overloads of another method

我有一个方法(在 class A 中)有很多不同的重载,我正在制作一个从 A 继承的 class B,改变方法的行为以在执行它最初的操作之前执行某个操作。 问题是必须对所有重载进行此更改,这可以使用模板来完成。 实际上这确实有效,但是使用模板意味着将方法的新代码放在 class 声明中(即在标题中) ...

具有 class 模板的不同专业化和专业化定义在其签名中具有其他专业化的功能 - Having different specialization of a class template and the specialization definitions have functions with other specializations in its signature

所以我有一个 class 模板,例如模板.h 我将float和double特化分成不同的.h文件浮动.h 和双倍.h 我将这三个文件按顺序包含在我的.cpp文件中,它工作正常但我需要将另一个 function 添加到将Something作为参数的float专业化 然后在template.h之后包含D ...

如果一个函数定义有一个类模板类型的参数并且没有使用它(它的成员),那么它是否被实例化? - If a function definition has a parameter of class template type and didn't use it (its members) then is it instantiated?

从上一个示例中,我在这里发布了有关何时实例化template的信息? ,我得到的答案是,只有在使用模板时,编译器才会实例化它。 但是看看这个例子: 如您所见,我已经声明了一个显式模板实例化Pow<int>但尚未定义它。 该程序运行良好,并且不会抱怨缺少Pow<int&gt ...

如何使用“if constexpr”正确实现“operator()”,以便它与 std::generate 一起使用? - How do I properly implement "operator()" with "if constexpr" so that it works with std::generate?

我试图编写一个 class ,它将用容器具有的类型填充随机数的容器: 但是这里某处发生了错误,因为当我调用 std::generate 时,我得到了很多错误: 我认为这可能是因为if constexpr但如果只是离开: 然后仍然返回相同的错误。 这是我得到的错误列表: function 调用如下 ...

在模板中定义的朋友 function 的实例化 - Instantiation of friend function defined inside a template

这是对这个问题的跟进。 最初的案例是另外一回事,但在我写一个糟糕的答案和 OP 澄清的过程中,事实证明我们可能需要语言律师的帮助来了解发生了什么。 在 C++ 中的思考 - 实用编程第 2 卷中,可以找到以下示例(我的意图,在线此处): 他们继续解释(强调我的): 这个和前面的例子有一个重要的区别: ...

C++ - 返回一个模板参数未知的模板 - C++ - Return a template with unknown template argument

我想从可以包含许多不同类型数据的文件类型加载图像:像素可以编码为float s、 double s、 unsigned char s、 char s(类似于 TIF 文件)。 加载后我将对图像数据进行的所有处理取决于加载的数据类型。 我已经有了一个函数,它可以从处理我的文件类型的 C 中的外部库中加 ...

模板显式实例化如何工作以及何时工作? - How template explicit instantiation works and when?

这是 C++ primer 第 5 版中的一个练习: “练习 16.26:假设NoDefault是一个没有默认构造函数的 class,我们可以显式实例化vector<NoDefault>吗?如果不能,为什么不呢?” 这是我的猜测: 是的,我们可以实例化它: 代码工作正常,但如果我取消 ...

如果类是不完整的类型,为什么要编译? - Why does this compile if the class is incomplete type?

在 Memory.h 我有: 在 main.cpp 我有: 即使在我粘贴到 Memory.h 之后 Foo 才完全定义,这也可以很好地编译。 我很困惑为什么会编译。 是不是编译器粘贴到Memory.h后的等价代码在main.cpp中是这样的: ??? 因为这不能编译,所以我收到错误: ...

使用 decltype 显式实例化 function:适用于 g++ 但不适用于 Visual C++ - explicit instantiation of function using decltype : work on g++ but not on Visual C++

此代码在 G++ 上运行,但不在 Visual C++ 上运行。 这是来自 Visual C++ 的错误:- error C2206: 'foo': typedef 不能用于 function 定义激励:我不想重复 function 签名进行显式实例化。 我修改了https://stackove ...

是否可以使用单个定义同时定义 function 的 const 和常规版本? (使用模板、自动、decltype 等) - Is it possible to define both const and regular version of the function with a single definition? (using templates, auto, decltype, etc)

假设我正在为单链表编写迭代器和 const_iterator。 假设我有以下课程: 我的问题是是否有可能以某种方式替换这些行 具有单个定义(可能使用模板参数 isConst)并由编译器推导出 const 说明符? 当 isConst = true 时,我希望 * 成为 const T& o ...

检查默认删除的 function 模板是否明确专门用于特定类型? - Check whether a default-deleted function template is explicitly specialized for a specific type?

(这个问题已经过大量编辑,抱歉。) 假设我有几个非常量的 function 模板,默认被删除: 并且有一些明确的特化作为一般情况删除的例外。 我想编写代码(例如特征 class?),给定这些函数之一的标识符和类型 T,在编译时检测指定的 function 是否明确专门用于类型 T。代码需要通用的 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM