3
在C++ standard您可以讀取(8.5.3.2 pag.202)更改變量引用
「的引用不能改變引用到另一個對象後 初始化。」
但對於下面的代碼
#include <iostream>
#include <functional>
int main(int argc, const char * argv[])
{
int i = 1;
int &j = i;
j = 2; // Ok, now i == 2
int k = 3;
j = std::ref(k);
std::cout << "j = " << j << ", i = " << i << std::endl;
return 0;
}
產生這個輸出
j = 3, i = 3
是真的錯了嗎?是編譯器的「特性」還是C++語言的「特性」?我在mac(LLVM 5.1)和windows(VS2010)上編譯了這段代碼的片段。
+1,你在那裏大肆渲染,我正要寫出相同的答案。 Drat你是如此的快速和正確;) – blockchaindev
@fixxxer:還有一個錯字。我只是修復它。 – hivert