使用原始指针作为参数的函数模板推导

奇怪的

案例一:

template<class T>
    class A{
    public:
        A(T*)
        {
            cout<<"T*"<<endl;
        }
        template<class Y>
        A(Y*)
        {
            cout<<"Y*"<<endl;
        }
    };

然后调用:

    A<int>p1(new int);      //T*
    A<int>p2(new double);   //Y*

这个案子我能理解。

案例B:

template<class T>
class B{
public:
    template<class Y>
    B(Y*)
    {
        cout<<"Y*"<<endl;
    }
};

然后调用:

B<int>p3(new int);      //Y*
B<int>p4(new double);   //Y*

问题:

我无法理解案例 B 并弄清楚为什么要B<int>p3(new int);打电话B(Y*)?有人知道为什么吗?

埃德加·罗詹

使用模板构造函数,类型参数的类型推导Y不依赖于T您使用 显式指定的类型参数B<int>

这意味着在以下情况下:

B<int>p3(new int)

Yint从 type 的参数推导出来的int*

同样,在以下情况下:

B<int>p4(new double)

Ydouble从 type 的参数推导出来的double*

类模板类型参数T和构造函数模板类型参数之间没有联系Y——它们的推导是分开进行的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模板参数推导失败,使用函数指针作为参数

来自分类Dev

以可变参数类模板作为函数调用参数的函数模板参数推导

来自分类Dev

函数模板内部的参数推导

来自分类Dev

如何使可变参数模板类方法以函数指针作为从函数模板派生的类型作为参数?

来自分类Dev

可变参数函数模板接受任何指针(指向变量,函数,成员函数等)作为参数

来自分类Dev

函数模板中返回类型的模板参数推导

来自分类Dev

C ++中转换函数模板参数推导的含义

来自分类Dev

使用函数指针作为模板函数类型参数?

来自分类Dev

模板函数指针作为模板参数

来自分类Dev

用可变参数模板参数调用零参数模板函数指针吗?

来自分类Dev

以成员函数指针为参数的可变参数模板

来自分类Dev

具有可变参数模板参数的函数指针

来自分类Dev

可变参数模板函数确定函数指针的返回类型

来自分类Dev

可变参数模板函数确定函数指针的返回类型

来自分类Dev

函数模板的显式专业化声明中的尾随模板参数推导(无函数参数推导)

来自分类Dev

如何使用通用函数指针作为模板参数?

来自分类Dev

如何使用通用函数指针作为模板参数?

来自分类Dev

模板函数参数推导

来自分类Dev

使用默认参数的C ++函数模板

来自分类Dev

将成员函数作为参数传递给函数模板

来自分类Dev

使用可变参数模板和函数指针的简单EventHandler / Provider

来自分类Dev

可变参数模板类型推导

来自分类Dev

可变参数模板类型推导

来自分类Dev

C ++可变参数模板推导失败

来自分类Dev

具有指针参数的函数模板重载解析

来自分类Dev

方法接受函数指针的可变参数模板

来自分类Dev

用可变参数模板在C ++中包装函数指针

来自分类Dev

函数模板,部分应用程序和模板参数推导

来自分类Dev

函数模板,部分应用程序和模板参数推导

Related 相关文章

  1. 1

    模板参数推导失败,使用函数指针作为参数

  2. 2

    以可变参数类模板作为函数调用参数的函数模板参数推导

  3. 3

    函数模板内部的参数推导

  4. 4

    如何使可变参数模板类方法以函数指针作为从函数模板派生的类型作为参数?

  5. 5

    可变参数函数模板接受任何指针(指向变量,函数,成员函数等)作为参数

  6. 6

    函数模板中返回类型的模板参数推导

  7. 7

    C ++中转换函数模板参数推导的含义

  8. 8

    使用函数指针作为模板函数类型参数?

  9. 9

    模板函数指针作为模板参数

  10. 10

    用可变参数模板参数调用零参数模板函数指针吗?

  11. 11

    以成员函数指针为参数的可变参数模板

  12. 12

    具有可变参数模板参数的函数指针

  13. 13

    可变参数模板函数确定函数指针的返回类型

  14. 14

    可变参数模板函数确定函数指针的返回类型

  15. 15

    函数模板的显式专业化声明中的尾随模板参数推导(无函数参数推导)

  16. 16

    如何使用通用函数指针作为模板参数?

  17. 17

    如何使用通用函数指针作为模板参数?

  18. 18

    模板函数参数推导

  19. 19

    使用默认参数的C ++函数模板

  20. 20

    将成员函数作为参数传递给函数模板

  21. 21

    使用可变参数模板和函数指针的简单EventHandler / Provider

  22. 22

    可变参数模板类型推导

  23. 23

    可变参数模板类型推导

  24. 24

    C ++可变参数模板推导失败

  25. 25

    具有指针参数的函数模板重载解析

  26. 26

    方法接受函数指针的可变参数模板

  27. 27

    用可变参数模板在C ++中包装函数指针

  28. 28

    函数模板,部分应用程序和模板参数推导

  29. 29

    函数模板,部分应用程序和模板参数推导

热门标签

归档