1樓:藍色
std::array是乙個包含了聚集體的結構,所以正常的賦值法應該是a1=
};這一點兒已經在14中取消,即可以a1=;而它說 a2 = 不能賦值,我以為說的是應該a2 = },但是看它上面的寫法,應該不是。那麼它可能考慮到的是它下面的話,即右邊的與左邊的大小物件不相同。但是我覺得這個說法也比較匪夷所思,為什麼就不能允許我賦值?
#include
#include
#include
using
namespace
std;
intmain();
arr=
};for
(inti=
0;i<5;
i++)}
很像這樣的情況,那麼為什麼不允許我賦值呢?不讓我賦值,我怎麼給陣列元素賦值呢,非要我for迴圈嗎?我想除非是超過了array本身的大小,不允許我賦值是應該的吧,所以我想它應該說的更清楚點兒,比如我的array只有5個元素的大小,你不能賦值5個以上的了吧,也就這樣推斷合理一些兒吧。
2樓:
這是C++11的新特性←這是錯的這是C++14的新特性←這是對的但是g++把自己玩壞了
g++ 4.7 是不行的,會報 `error: no match for 'operator=' in 'array = '',g++ 4.8 可以
但是你看 https://
gcc.gnu.org/projects/cxx1y.html
根本就沒提到這個的支援嘛
C Primer中的型別別名char 的問題?
hardsing typedef引入的不是新型別,而是給現有的型別起乙個別名而const修飾的是 給定型別 換句話說const是對給定型別的修飾,關鍵在於 給定型別 什麼是給定型別呢 typedef char pstring pstring就是char 的別名const pstring cstar ...
C Primer中auto型別的乙個例題?
孤島的雨 正如樓上所說,這裡的const int 中的const是底層const,不是頂層,不能忽略。你可以看58頁中第一行,在指標中頂層與底層const的位置區別 此處auto推斷應該出const int 因為此處const是low level,所以不可忽略,手上只有英文版,2.5.2.The a...
C 雙向引用編譯問題(C Primer中的乙個例子)?
你沒用模板,為什麼 實現 要在標頭檔案裡?如果你是指類的詳細定義在標頭檔案,那是當然的啊,有了詳細定義才能知道大小,才能知道開闢多少空間啊。至於改友元類,我平時就是這麼用的。我其實不太明白為什麼會有對其他類的方法設定友元的操作,按道理就應該是把自己暴露給另乙個類。另外我感覺設計上其實還有很多講究。比...