在多个基类中没有对模板化成员函数的访问或歧义检查

ana科

这可以在Visual C ++ 2015 Update 3 RC上编译并正常运行:

class A
{
    template <class T> void f() {}
};

class B : A {};
class C : A {};

class D : B, C {};

int main()
{
    D d;
    d.f<int>();
}

此代码有两个问题:

  1. f()是私有的,因此d.f<int>()应该无法编译。
  2. f()是模棱两可的,可能是B::f()C::f()

但是,没有诊断为/WallB::f()颠倒顺序是D从getC::f()调用继承而来的,所以我想它只是使用列表中的第一个基类。

g ++和clang都正确。我是否缺少某些内容,或者这是Visual C ++中的错误?

ana科

这是Visual C ++的错误。我可以在2015年和2012年重现它,但不能在2005年重现。我在Connect上打开了一个错误报告我唯一的解决方法是将函数重命名为一个不寻常的名称,这样就不会被意外调用。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中为多个类类型指定相同的模板化成员函数?

来自分类Dev

使用概念或SFINAE检查类是否具有带有std :: array参数的模板化成员函数

来自分类Dev

根据单独的模板化成员来改变类的模板化成员函数的返回类型

来自分类Dev

根据单独的模板化成员来改变类的模板化成员函数的返回类型

来自分类Dev

模板类成员与非成员模板函数的歧义

来自分类Dev

使用多个继承和模板访问基类的成员

来自分类Dev

访问从模板类派生的类中的基本成员函数

来自分类Dev

从未模板化类的模板化成员函数实例化模板化类

来自分类Dev

派生类不能访问私有成员(尽管构造函数是在基类中定义的)

来自分类Dev

如果我们有一个基 * 类,如何访问派生模板类的成员函数

来自分类Dev

私有基类通过子类中的模板朋友功能和模板方法影响成员访问

来自分类Dev

对基类中的重载函数的歧义调用

来自分类Dev

访问嵌套类模板的静态成员函数

来自分类Dev

静态模板函数访问静态类成员

来自分类Dev

从类内部线程化成员函数

来自分类Dev

没有匹配的函数来调用类中的成员函数

来自分类Dev

C ++模板:从基类调用派生模板类的成员函数

来自分类Dev

如何在继承的类成员函数中访问基类成员的地址?

来自分类Dev

C ++中的模板化成员变量

来自分类Dev

解决基本模板类成员的歧义

来自分类Dev

有没有办法在C ++中后期初始化成员变量(类)?

来自分类Dev

尽管不同的参数列表,基类模板成员函数仍在“派生类”中隐藏

来自分类Dev

在类函数中访问数组类成员

来自分类Dev

带有模板类成员函数的 SFINAE

来自分类Dev

在C ++中访问模板类的私有构造函数

来自分类Dev

在没有模板的构造函数中访问覆盖的字段

来自分类Dev

从成员结构的成员函数中访问类的成员?

来自分类Dev

模板类的成员函数

来自分类Dev

无法访问在类中声明的私有成员:队列类模板

Related 相关文章

  1. 1

    如何在C ++中为多个类类型指定相同的模板化成员函数?

  2. 2

    使用概念或SFINAE检查类是否具有带有std :: array参数的模板化成员函数

  3. 3

    根据单独的模板化成员来改变类的模板化成员函数的返回类型

  4. 4

    根据单独的模板化成员来改变类的模板化成员函数的返回类型

  5. 5

    模板类成员与非成员模板函数的歧义

  6. 6

    使用多个继承和模板访问基类的成员

  7. 7

    访问从模板类派生的类中的基本成员函数

  8. 8

    从未模板化类的模板化成员函数实例化模板化类

  9. 9

    派生类不能访问私有成员(尽管构造函数是在基类中定义的)

  10. 10

    如果我们有一个基 * 类,如何访问派生模板类的成员函数

  11. 11

    私有基类通过子类中的模板朋友功能和模板方法影响成员访问

  12. 12

    对基类中的重载函数的歧义调用

  13. 13

    访问嵌套类模板的静态成员函数

  14. 14

    静态模板函数访问静态类成员

  15. 15

    从类内部线程化成员函数

  16. 16

    没有匹配的函数来调用类中的成员函数

  17. 17

    C ++模板:从基类调用派生模板类的成员函数

  18. 18

    如何在继承的类成员函数中访问基类成员的地址?

  19. 19

    C ++中的模板化成员变量

  20. 20

    解决基本模板类成员的歧义

  21. 21

    有没有办法在C ++中后期初始化成员变量(类)?

  22. 22

    尽管不同的参数列表,基类模板成员函数仍在“派生类”中隐藏

  23. 23

    在类函数中访问数组类成员

  24. 24

    带有模板类成员函数的 SFINAE

  25. 25

    在C ++中访问模板类的私有构造函数

  26. 26

    在没有模板的构造函数中访问覆盖的字段

  27. 27

    从成员结构的成员函数中访问类的成员?

  28. 28

    模板类的成员函数

  29. 29

    无法访问在类中声明的私有成员:队列类模板

热门标签

归档