问题标签 [template-argument-deduction]
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.
c++ - 了解 SFINAE
据我所知,SFINAE 意味着替换失败不会导致编译错误,而只是从可能的重载列表中删除原型。
我不明白的是:为什么是这个 SFINAE:
但这不是吗?
据我了解,这里的基本逻辑是相同的。这个问题来自对此答案的评论。
c++ - 返回双精度或复数从模板函数
我正在编写一些函数模板来重载*
矩阵类的运算符。我对类型矩阵double
和complex<double>
. 是否可以编写一个返回正确类型的模板函数?例如:
我希望返回类型V
由T*U
. 这可能吗?
编辑:
我提出的后续问题收到的答案提供了适用于此处的其他信息。
c++ - C++ 中的模板和标准算法
在阅读“Effective STL”一书时,作者给出了一个如何copy_if
编写 a 的示例,因为这在标准算法中不存在。这是作者的版本:
现在我的问题是作者如何使用这样的方法:
我的问题是为什么不使用 copy_if 定义模板参数(因为它需要 3),例如
c++ - 为什么 std::function 不能接受推导类型作为其模板参数?
我的编译器是 VC++ 2013。
为什么f1
不能按预期工作?
c++ - 带空尖括号 <> 的模板函数调用
我对下面的模板行为感到困惑,它可以用空尖括号(没有参数的模板)很好地编译,因为在语法上,模板<>被保留以标记显式模板特化。
在上述情况下,模板参数真的是可选的吗?
c++11 - If P is not a reference type: If A is a reference type, the ref-qualifier of A’s type are ignored for type deduction
I'm learning template argument deduction stuff,I have read <14.8.2.1 Deducing template arguments from a function call>(C++11 draft) many times and I think that it missed a rule:
If P is not a reference type: If A is a reference type, the ref-qualifier of A’s type are ignored for type deduction.
It must be my fault, but I dont know where it is.
c++ - 新 C++ 标准支持的功能是否支持模板模板参数?
我在 C++ Template: The complete Guide 一书中找到了以下语句:
不允许函数模板的模板模板参数。
但是他跟随一段代码为我编译和运行。
这是否意味着新的 C++ 标准支持函数的模板模板参数?以下帖子的答案另有说明: How to get template template argument deduction working with functions?
c++ - 无法使用 std::basic_string 推断模板参数
我的问题的精简版:
我想合并这两个功能:
..整合到一个模板化函数中:
而且我认为我将能够Foo
像(1)
and一样调用(2)
,但令我惊讶的是,它甚至不起作用(3)
。
我尝试删除const
参数的限定符s
,甚至删除引用 ( ),或者使用而不是&
调用,但结果都相同。lvalues
rvalues
编译器(gcc 和 VS - 所以我很确定这是符合标准的行为)无法推断Foo
. 当然,如果我打电话给Foo
like ,它会起作用Foo<char>(...)
。
所以我想了解为什么会这样,特别是因为调用(3)
是调用参数对象的类型和函数参数类型之间的一对一类型。
其次,我想要一个解决方法:能够使用一个模板函数,并且能够像(1)
and一样调用它(2)
。
编辑
(2)
并(3)
做工作。我在我的编译器中声明它是错误的(不像我的问题):
对于那个很抱歉。
c++ - 为什么宏 __STL_FUNCTION_TMPL_PARTIAL_ORDER 要将模板函数包含在 std_pair.h 中
今天在stl_pair.h中看到如下代码:
我不认为模板函数与函数模板的部分专业化有任何关联。我错了吗 ?