[問題] 關於 const int 的 concept

看板C_and_CPP (C/C++)作者 (小乖)時間16年前 (2009/12/20 16:30), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
關於 template < const int > 的問題 (17969篇) free大解答了我的疑問。 但關於 CopyConstructible 且 Assignable 的 concept 我這裡有些疑問。 因為 int 是內建型別, const int 不是 assignable 也很容易理解 於是我自己寫了一個簡單的 Int 型別 =================================================== class Int { public: Int(int i = 0) :integer(i) { } Int(const Int& i) { cout << "copy costructor" << endl; integer = i.integer; } const Int& operator= (const Int& i) const { return *this;} Int& operator= (const Int& i) { this->integer = i.integer; return *this; } public: int integer; }; int main() { Int a(100); const Int b = a; vector<const Int> vec_cInt; vec_cInt.push_back(b); vec_cInt[0].integer = 99; // 我故意在讓 integer 為 public } =================================================== 我實作了 const Int& operator= (const Int& i) const; 和 Int& operator= (const Int& i); 運算子 (先不討論 const 版本的行為是否正確) 我在 main 中呼叫 const Int b = a; // CopyConstructible 而又有 const 版本的 operator= // Assignable 可是跑出的結果還是一樣 @@" 也許是我對 copy 和 assign 的 concept 看法有些出入吧 請問大家有什麼看法呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.16.28

12/20 19:44, , 1F
concept 的問題不會在編譯期和執行期檢測,你違反了前提其
12/20 19:44, 1F

12/20 19:44, , 2F
實後面的討論和實驗結果就完全沒有意義,因為本來就無法預
12/20 19:44, 2F

12/20 19:45, , 3F
期,至於什麼叫 Assignable 我建議你翻書查定義比較快。
12/20 19:45, 3F

12/20 19:45, , 4F
不是語法有效就符合 Assignable。
12/20 19:45, 4F
文章代碼(AID): #1BBU2ZZS (C_and_CPP)
文章代碼(AID): #1BBU2ZZS (C_and_CPP)