最新回答
  • 14天前
    1 #

    gcc 是正确的; 您的摘要格式不正确!

    // reduced testcase
    template<class T>
    class A { };
    int main () {
      A<float>::A<int> x; // ill-formed, bug in `clang` and `icc`
    }
    

    在上述简化的测试用例中,我们有一个嵌套名称说明符A<float>:: ,然后是unqualified-id A ,然后再出现一些乱码( <int> )。

    这是因为nested-name-specifier出现的上下文要求在查找过程中包括函数名称(这意味着首先找到构造函数,并且表达式是 格式不正确)。


    Relevant Bug Reports

    威兹威兹 威兹威兹


    如何规避"问题"?

    在某些上下文中,通过嵌套名称说明符查找的成员名称(指定一个类)不应包含函数(因此,找不到构造函数的上下文), 以下是一些示例:

      llvm.org/bugs/ -

    #8263; Incorrect constructor name resolution
    

    标准怎么说? 威兹威兹 威兹威兹 威兹威兹 威兹威兹

    威兹威兹 威兹威兹

    该名称被认为是命名类C的构造函数。

    [Note:...]

    仅在用于命名构造函数的声明的declarator-id中或在using-declaration中使用这种构造函数名称。


    88。忽略函数名称的查找包括出现在嵌套名称说明符精化类型说明符< / em>或base-specifier

    威兹威兹 威兹威兹 威兹威兹 威兹威兹

    威兹威兹 威兹威兹

    template<class T> struct A { typedef T value_type; };

  • javascript:在IE8中创建脚本标签
  • dom:Javascript小书签转到URL并执行