2017-09-06 46 views
4

我的意思是添加一個複製構造函數給一個類,但忘了添加類型。 g ++ 5.4.0成功編譯了類。爲什麼g ++接受一個缺少基礎類型的引用類型?

這是g ++ 5.4.0成功編譯和構建的最小程序。

struct Foo 
{ 
    Foo(const&) {} 
    Foo() {} 
}; 

int main() 
{ 
    Foo f1; 
    Foo f2 = f1; 
} 

爲什麼g ++不報告Foo(const&) {}作爲錯誤?

+3

我在想可能是隱式int,但[我無法在Wandbox上重現](https://wandbox.org/permlink/Ezv3GWQbAGyis4ev)請提供一個實例。 –

+0

@ShafikYaghmour,ideone.com不允許我選擇編譯器版本。網站上的任何指針都允許你這樣做? –

+0

是的,我評論中的鏈接轉到了Wandbox。 –

回答

1

這似乎是我安裝g ++ 5.4.0時的一個缺陷。

它無法使用g ++ 6.3在https://ideone.com/D0vGrw進行編譯。

我已經使用了相同的代碼塊。

struct Foo 
{ 
    Foo(const&) {} 
    Foo() {} 
}; 

int main() 
{ 
    Foo f1; 
    Foo f2 = f1; 
} 

它也無法使用g ++ 5.4.0在Wandbox進行編譯。

相關問題