问题标签 [function-templates]

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 投票
2 回答
67 浏览

c++ - 方法模板中语法的含义

我对以下代码有两个问题:

  1. 第 211 - 213 行:显示的方法flux(...)应该是返回类型为 的方法模板limitedSurfaceInterpolationScheme<Type>。在这方面到底是什么tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >意思?

  2. 第 218 行:faceFlux_*this做什么?faceFlux_是类模板的成员对象,limitedSurfaceInterpolationScheme<Type>是被调用*this的对象方法的内容。flux(...)

直接问候

0 投票
0 回答
192 浏览

templates - #ifdef 围绕 VS2012 与 VS2013 的最佳实践以支持 c++11?

根据 VS 版本切换某些函数声明的好/最好的方法是什么?

背景:我需要在 linux 和 windows 上构建,并不断遇到 GCC 编译良好但 VS2012 缺少一些 c++11 功能的情况。我想#ifdef 排除不支持的语法,以便它现在可以在 linux 上使用,并且稍后可以轻松启用以支持 VS2013。

像默认函数模板参数这样的功能据说对 vs2013 很好:http: //blogs.msdn.com/b/vcblog/archive/2013/06/27/what-s-new-for-visual-c-developers-in- vs2013-preview.aspx

0 投票
2 回答
1264 浏览

c++ - 使用基类的函数模板特化

我环顾四周,并没有找到我要找的东西。基本上我想要一个由基类专门化的函数模板。我不知道如何使它使用专门的功能。

意义...

我使用的原因const T*是因为IBase是抽象的。

0 投票
1 回答
151 浏览

c++ - 用另一个函数模板重载一个函数模板是否合法?

我正在尝试创建一个重载方法,其中两者都是模板化的。一个需要 4 个参数,一个需要 5 个参数。但是我得到了一个错误

它引用了 4 参数方法定义的行

在这种情况下,我试图用 5 个参数调用重载,所以我不明白为什么编译器认为我想调用只需要 4 个参数的函数。

完整的上下文太复杂了,无法给出完整的代码示例,但只要说这一切都发生在一个类模板中就足够了,它有很多本地typedefs,包括samp_type, const_samp,samp_vec等。这些都是模板参数的类型定义持有 POD 类型或std::array其中一种 POD 类型

如果我理解正确,调用模板函数时,不需要提供编译器可以通过函数参数推导出的模板参数,所以调用看起来像这样

那么,我调用这些模板方法的方式有问题吗?我期望编译器解决重载的方式有问题吗?

编辑

我正在使用VS2010。到目前为止,模板和 C++11 数据类型都非常好。不确定我的编译器是否表现不佳

0 投票
2 回答
231 浏览

c++ - 通过重载实现部分模板特化

我创建了一个简单的圆形模板函数,其中包含一个额外的模板参数,该参数定义了在返回之前需要将舍入值转换为的类型。

但我也希望有可能留下额外的模板参数,这样您就不必插入已经添加为参数的类型。

但是,现在编译器抱怨:

错误 C2668:对重载函数的不明确调用

我认为编译器总是会选择最具体的模板,应该是最后一个。为什么不是这种情况,是否有任何解决方法(不是专门针对此轮函数)?


模棱两可的电话不是指向,round(5.5)而是指向return round<T>(val);. 因此,这个问题的答案是将重载函数的返回值重写为

这解决了这个问题。

感谢galop1n回答我的另一个问题

0 投票
1 回答
279 浏览

c++ - Visual Studios 2012 中的默认模板参数

这个问题是这个问题之后的后续问题。实际问题是Visual Studios 2012 不支持函数模板的默认模板参数,如此列表所示。


由于 Visual Studios 2012 不支持默认模板参数,是否有任何解决方法可以在没有它的情况下获得相同的结果?那么是否可以定义一个模板函数,例如

不使用默认模板参数?该功能作为

0 投票
1 回答
4488 浏览

c++ - c++错误:没有函数模板的实例

我正在尝试使用 c++ 从我的 config.lua 文件中获取一个变量。我从教程中创建了一个 Lua-Class 来获取这些变量,但是当我尝试调用从 config.lua 获取变量的函数时出现错误

以下是代码片段:

我在调用“script.get(string(”test));”时收到错误,“没有函数模板的实例与参数列表匹配”

模板函数和特化如下所示:

专业化:

只是为了获得更多信息,我正在使用 Visual Studio 2012 进行编码和编译。

感谢您的帮助 :)

0 投票
2 回答
192 浏览

c++ - Find Item Function Template Giving Me Problems

I am trying to find an item in a range so I have multiple tests for my templated function called "find".

that is the function prototype I am using that fails to work with my first test which is:

It says @ const int *pos "Error: no instance of function template "find" matches the argument list argument types are (const int [11], const int *, const int)"

I have a second prototype that works with this test but its not fully templated so It fails the second test which asks for a int *pos not a const int *pos.

second prototype:

I'm not quite sure how I'm supposed to template the first function to work with any case.

0 投票
1 回答
116 浏览

c++ - 如何为字符数组制作模板函数特化?

我正在尝试为冒泡排序的字符数组制作模板函数专业化。但是由于某种原因,当我要定义函数时,函数名称上出现错误下划线,我不知道为什么。

0 投票
1 回答
523 浏览

c++ - 未知的函数模板参数

我正在编写一个应用程序分析库,它基本上挂钩 Windows API 并记录参数和结果。我试图想出一种方法来使用 C++ 模板生成这些钩子,这种方式需要最少的努力来添加新的钩子。基本上,我的每个钩子都如下所示:

我想通过模板来概括这一点,以便可以为任何 Windows API 函数生成这些函数decltype,例如decltype(CreateFileW). 这甚至可能吗?我一直function_traits在 Boost 中查看,似乎我能够想出一些接近的东西:

Hook挂钩库提供了 哪里,它用我的挂钩版本替换了“真实”功能。

唯一的事情是,我不确定如何删除CloseHandle当前在call函数内部的模板参数。有任何想法吗?