代码之家  ›  专栏  ›  技术社区  ›  Chubsdad

命名空间使用声明(gcc/vs2010中的bug)?

  •  12
  • Chubsdad  · 技术社区  · 14 年前
    namespace A{
       int i;
    }
    
    int main(){
       using A::i;
       using A::i;
    }
    

    VS2010-编译良好

    GCC(IDeone)-编译良好

    comeau-给出错误“comeautest.c”,第10行:错误:“i”已在当前范围内声明 用答:我;

    $7.3.3/8-“使用声明是 声明,因此可以使用 重复在哪里(并且只在哪里) 允许多个声明。“

    这里的示例表明代码确实格式错误。

    那么,这是GCC和VS2010中的一个bug吗?

    编辑2:

    删除倍数 using directives 因为它与现有查询无关。

    2 回复  |  直到 14 年前
        2
  •  1
  •   Prasoon Saurav    14 年前

    7.3.3/8

    void f()
    {
        using A::i;
        using A::i;  //error: double declaration
    }
    

    推荐文章