-
7 votesanswersviews
函数参数包的模板参数推导后跟其他参数
f1 和 f2 的演绎是否形成错误? template<class... T, class U> void f1(T..., U){} template<class... T> void f2(T..., int){} int main() { f1(1); f2(1); return 0; } g接受两者,clang只接受 f2 ,而msvc... -
3 votesanswersviews
功能的扣除指南作为模板参数
We can use std::unique_ptr to hold a pointer allocated with malloc which will be freed appropriately.但是,产生的 std::unique_ptr 的大小将是2个指针,一个用于指向对象的指针,一个用于指向删除函数的指针,而不是通常的指向对象的指针和隐式 delete . 正如一个答案所指出的那样,... -
1 votesanswersviews
C 17模板推导指南不用于空参数集(第2版)?
在C++17 template deduction guide not used for empty parameter set?之后进入模板演绎指南中的另一个怪异(不幸的是,_939217_仍然没有在GCC主干中修复:(): #include <utility> template <class T> struct success { T value; const... -
8 votesanswersviews
是否保证模板模板参数调用用户提供的演绎指南
考虑一个例子: #include <type_traits> #include <string> template <template <class> class TT> //#1 struct Foo { static void foo() { static_assert(std::is_same_v<decltype(T... -
10 votesanswersviews
函数模板参数推导(类与功能模板)
你能帮我理解为什么参数推导适用于类模板而且不适用于函数模板吗? 如果我理解正确,类模板定义了一个函数,所以当我调用它时,编译器可以进行隐式转换,但是在函数模板的情况下,目前没有函数定义,所以隐式转换没有发生 . 但是我不明白为什么编译器不能创建函数定义然后应用隐式转换? #include <functional> template<typename ...ARGS> cl... -
11 votesanswersviews
用户定义的演绎指南是否涉及模板模板参数作为符合指导标准的模板
背景 昨天我问了一个关于guarantees of deduction guides usage in case of template template parameters的问题 . 当Barry改变了对代码标准符合性确认的答案时,我感到非常惊讶 . 令我惊讶的是,实际上并不是因为扣除指南可以应用于模板模板参数,而是来自符合此合规性的标准部分,即[temp.param]/3: 标识符不遵循省... -
7 votesanswersviews
使用一个参数进行模板参数推导?
假设我有一个模板函数, assign() . 它接受一个指针和一个值,并将值赋给指针的目标: template <typename T> void assign(T *a, T b) { *a = b; } int main() { double i; assign(&i, 2); } 在这种情况下,我总是希望从第一个参数中推导出 T ,但看起来我没有很好... -
3 votesanswersviews
别名模板的参数推导
我在与别名模板的上下文中偶然发现了关于模板参数推导的一些行为,我不理解 . 基本设置如下: #include <type_traits> #include <iostream> // class-template: template<typename tpProxy, typename ...tpElements> struct basic_id {}; /... -
0 votesanswersviews
C,使用函数参数匹配自定义占位符
我正在尝试编写将执行以下操作的代码段:假设我们调用了自定义绑定函数 auto bind_obj = bind(some_func, _1, "test") 在我们之后 auto res = bind_obj(42) 函数some_func的位置: int some_func(int val, string test) 怎样才能将占位符与实际函数调用中提供的参数匹配,即bi...