问题标签 [template-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2200 浏览

c++ - 模棱两可的调用:int to double 或 bool

我有一个 Parameter 类,并且我重载了构造函数以接受 bool 或 double。当你给它一个 int 时,它无法构建:

错误 C2668:“Parameter::Parameter”:对重载函数的模糊调用可能是“Parameter::Parameter(std::string,std::string,double)”或
“Parameter::Parameter(std::string,std: :字符串,布尔)'

我相信我有两个选择:

  1. 使用 int 默认值重载
  2. 将我的变量显式转换为双精度

我有很多参数,其中一些是 unsigned long、float 等(在一个多人支持的项目中),所以这些都不是完美的解决方案。有没有办法强制从 int 到 double 的隐式转换?谢谢。

代码:

0 投票
1 回答
50 浏览

c++ - 调用模板函数的奇怪行为

我写了以下代码:

输出:

第一个函数调用没问题,它正在调用模板函数。但是,为什么第二个函数也调用模板函数,而它是一个字符串常量。它不应该调用非模板函数吗???

还有为什么第二个函数调用的输出是y,不是x吗?尽管两者都是字符串,但使用字符串常量和 char 类型数组调用函数有什么区别?

0 投票
1 回答
1320 浏览

c++ - 从模板函数返回迭代器到 STL 容器

我试图将迭代器从模板函数返回到向量(还不是模板类成员——我还在写那个)。编译器不断给我错误(复制如下以方便谷歌搜索)。我基本上知道问题出在哪里,但确切的语法是难以捉摸的。

我阅读了互联网,搜索了 SO,包括我必须在哪里以及为什么要放置“模板”和“类型名”关键字?,但没有找到有效的答案。我想我应该在这里提出问题并自己回答。

(略)原代码如下:

编译器错误:

变得明智,我尝试了这个:

更多编译器错误:

如果这个问题被解锁,我会在下面发布我的答案。否则,请参阅我在何处以及为什么必须放置“模板”和“类型名称”关键字的答案?.

0 投票
1 回答
52 浏览

c++ - 如何解决这个模板函数的模棱两可的错误

我编写了一个模板函数,用于测试给定容器中是否有键或值。

它适用于std::mapand std::vector。但是当容器是 时std::set,会发现一个模棱两可的错误。因为std::set定义了key_typevalue_type,并且它们是相同的类型。所以我的问题是如何解决这个问题?谢谢!

0 投票
2 回答
469 浏览

c++ - 使用可变参数模板参数调用零参数模板函数指针?

这是来自Functional C++博客的一篇文章的代码片段,描述了如何实现通用函数求值。

我的问题是,如何在没有参数的情况下声明像 R(C::*f)() 这样的模板函数指针 f 并且仍然能够使用 Args 调用它……?

例如,当我尝试:

我收到此错误:

如果我声明funclike R(C::*func)(int),它会编译。

0 投票
1 回答
222 浏览

c++ - 接受模板类的模板函数

我想编写一个模板函数,它接受模板类作为输入参数。

类似上面的东西。该类可以是模板类吗?如果是,我该怎么写?我尝试执行此操作时出错。请帮助我。提前致谢

编辑:

我收到以下错误:错误 1 ​​错误 C2275:'ImageType':非法使用此类型作为表达式

当我在 if else 条件下调用 ReadImage() 函数时发生错误

0 投票
0 回答
849 浏览

c++ - c++ 无法解析重载的函数模板

首先,我不明白为什么编译器似乎无法解析有问题的代码(由 ENABLE_OFFENDER 宏包装)。这两个 get() 方法具有非常不同的调用签名。所以,也许 C++ 语言律师可以帮助解释我为什么会收到错误。

其次,有没有办法为编译器提供更多关于它应该使用哪个 get() 的指导?

通过更改有问题的代码,我让代码在我的旧编译器上工作。

0 投票
2 回答
57 浏览

c++ - 多个模板化函数交互

我一直无法让我的findNth模板化函数使用我的辅助函数quicksort。我不断收到“使用未声明的标识符'快速排序'”,就好像没有匹配的函数调用一样。知道发生了什么吗?

这是我的快速排序功能。

所有其他快速排序辅助函数都已编写完毕,但据我所知并没有引起任何问题。

0 投票
1 回答
708 浏览

c++ - 模板化函数中 const 引用的类型推导

下面我有一个名为 ProxyCall 的模板函数,它接受一个对象、一个成员函数及其参数。它只是将调用转发给成员函数。

我希望能够在不使用模板限定符的情况下调用该函数(想象大量带有多个参数的此类调用)。当我尝试像示例中那样传递 const 引用参数时,类型推导大多有效,但编译器(msvc 和 gcc 4.9)会出错。

我的问题是:如何修改上述代码,以便编译器自动推断类型,而无需使用显式模板限定符或显式转换。考虑到编译器已经从 Widget::f 的签名中知道确切的参数类型,这似乎应该是可能的。

0 投票
2 回答
526 浏览

c++ - 必须做什么才能将嵌套类中定义的静态模板函数声明为兄弟嵌套类中的朋友?

在 Linux 上使用 GCC 4.8.2,我想授予工厂方法 Create() 对 C 类的私有构造函数的访问权限,但是在尝试声明专门的朋友时出现“错误:'Create' 未在此范围内声明” . 如何在不对 B::Create() 的所有类型开放声明的情况下使其工作?