386得票15回答
一个类成员函数模板可以是虚函数吗?

我听说C++类成员函数模板不能是虚函数。这是真的吗? 如果它们可以是虚函数,那么有什么情况下会使用这样的函数的例子呢?

157得票1回答
模板类中的模板函数

我有这段代码:template <class T> class MyClass { public: template <class U> void foo() { U a; a.invoke(); } }; 我想要...

94得票5回答
为什么函数模板不能进行部分特化?

我知道语言规范禁止对函数模板进行部分特化。 我想知道为什么它禁止这样做?它们不是有用的吗? template<typename T, typename U> void f() {} //allowed! template<> void f<int, cha...

61得票2回答
为什么 `const T&` 不确定是常量?

template<typename T> void f(T a, const T& b) { ++a; // ok ++b; // also ok! } template<typename T> void g(T n) { f<T...

43得票2回答
模板默认参数丢失其引用类型。

考虑 #include <iostream> #include <type_traits> template <class T, class ARG_T = T&> T foo(ARG_T v){ return std::is_refer...

40得票3回答
为什么模板构造函数优于复制构造函数?

#include <iostream> struct uct { uct() { std::cerr << "default" << std::endl; } uct(const uct &) { std::cerr <&l...

37得票2回答
如何在模板参数列表中传递模板函数

假设我有一个模板函数:template: template<typename T> T produce_5_function() { return T(5); } 我该如何将整个模板传递给另一个模板? 如果produce_5_function是一个函数对象,那就没有问题了:...

28得票2回答
C++20中是否不再允许针对程序定义类型在std中进行函数模板的专门化?

引用自cppreference.com: 添加模板特化 只有当声明依赖于至少一个程序定义的类型,而且特化满足所有原始模板的要求时(除了禁止此类特化的情况),才允许向std命名空间添加任何标准库|类模板(自从C++20起)|的模板特化。 这是否意味着,从C++20开始,不再...

25得票4回答
函数模板具有未推导上下文的部分排序

在阅读另一个问题时,我遇到了部分排序的问题,我将其简化为以下测试用例 template<typename T> struct Const { typedef void type; }; template<typename T> void f(T, typename ...

24得票7回答
C#中的模板函数 - 返回类型是什么?

似乎C#不支持类似于C++的模板。例如:template <class myType> myType GetMax (myType a, myType b) { return (a>b?a:b); } 我希望我的函数的返回类型基于其参数,如何在C#中实现此目标?如何在C#中...