簡體   English   中英

不尋常的范圍解析運算符

[英]Unusual scope resolution operator

在今天重構一些C ++代碼的過程中,我得到了一些可歸結為以下內容的代碼

class x
{
  public:
    void x::y();
};

x:: scope解析器操作符是否在此處執行任何操作,是一個錯誤,還是其他內容。 我最好的猜測是,它是一些自動完成遺留下來的人工制品,但我很想知道我是否遺漏了任何東西。 正在使用的編譯器是VS2010 SP1。

這是一個錯誤,大多數編譯器都會拒絕它。 例如, GCC說

prog.cpp:4:10: error: extra qualification ‘x::’ on member ‘y’ [-fpermissive]
     void x::y();
          ^

C ++ 11 8.3 / 1不允許使用冗余限定符:

除了在其類之外的成員函數或靜態數據成員的定義,在其命名空間之外的命名空間的函數或變量成員的定義或顯式實例化,或者顯式的定義之外,declarator-id 不應被限定在其命名空間之外的特化,或者是另一個類或命名空間的成員的友元函數的聲明。

沒有適用於其類中的成員聲明的異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM