![](/img/trans.png)
[英]Function template argument deduction with variadic class template as function call parameter
[英]function template argument deduction in a class
我一直認為函數模板參數推導僅適用於如下所示的純函數,不適用於類。
template <class T1,class T2, class T3>
T foo(T2 a, T3 b)
{
T o;
//..do something
return o;
}
今天,我只是偶然地將這樣的函數放到了一個類中,它的工作原理如下。
class MyClass
{
public:
template <class T1,class T2, class T3>
T foo(T2 a, T3 b)
{
T o;
//..do something
return o;
}
}
我在Linux中使用g ++ 4.4。 應該失敗還是我誤解了?
我一直認為函數模板參數推導僅適用於如下所示的純函數,不適用於類。
這是不對的。 自由功能和成員功能的推導沒有區別。
模板推導對功能和方法 起作用 。
如果您有模板類,則類似於:
template <class T1, class T2>
class MyClass
{
public:
MyClass(T1 a, T2 b)
};
你不能像這樣推斷類型
MyClass m(42, 53); // Illegal
auto m = MyClass(42, 53); // Illegal
您必須明確指定類型:
MyClass<int, int> m(42, 53); // Legal
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.