我不是在問這種調用的邏輯,而是我對支持B/W Visual C++和GCC/Clang的區別感興趣。 Visual C++將不允許將對象的新實例用作其自己的拷貝構造函數的參數。 GCC和Clang允許這樣做。考慮到'int i = i''是允許的,我想知道是否Visual C++有一個錯誤。正在創建實例調用複製構造函數
class test {
private:
test() {}
public:
test(const test& t) {}
};
int main(void) {
int i = i;
test t(t); -- this line gives an error in Visual C++
return 0;
}
那麼在GCC中,雞還是雞蛋先來? – Jon
'int i = i'和'test t(t)'是相當不同的形式。後者非常明顯無效(實際上,前者應該也是如此)。 – ssube
int i = i是一個賦值,沒有複製構造在那裏吸引.. – stijn