→ azureblaze:std::is_pod? 10/22 21:58
→ Feis:叫做 do 也蠻酷的~ 10/22 22:03
→ applecool:大感謝~~!瞬間解決!!! 10/22 22:03
→ suhorng:不過 C++11 union可以放不是POD的東西的樣子 10/22 22:45
→ Feis:要放非 POD 的前提是要手動定義 union 建構式 10/22 23:10
→ Feis:不過這裡 union 沒有真的定義變數, 所以沒差. 10/22 23:11
→ applecool:3q~~不過現在 is_pod 跟 union 可能結果不一樣, 10/22 23:32
→ applecool:看來我以後只能固定用 is_pod 了 10/22 23:32
→ applecool:就像四樓說的 10/22 23:35
→ Feis:但是你的用法不違背. 你的 union 沒自定義建構式 10/22 23:36
→ Feis:所以應該是不能是 POD 的. 當然可能是我理解有錯~很少用 10/22 23:36
→ applecool:union 的限制有變化之後,看來真的只能用 static_assert 10/22 23:38
→ applecool:再搭配 std::is_pod 使用了 10/22 23:38
→ applecool:所以以前用 union 判斷 POD 的習慣只能改掉了 10/22 23:39
→ Feis:我上一句語意怪怪的. 總之我覺得 union 還是可以. 10/22 23:40
→ Feis:只是 is_pod 顯然合理多了. 10/22 23:41
在我的電腦上,就像我之前貼的連結範例
struct A {
int x;
private:
int y;
};
用 union 會過,可是他不是 POD,所以我還是會用 is_pod
不然怕編譯器最佳化開下去會炸掉
感謝各位指導!!!
※ 編輯: applecool 來自: 123.241.67.33 (10/22 23:44)
→ Feis:原來如此, 我沒想到這個 case~ 10/22 23:48
→ applecool:以前很大量地使用 constraint 說~~現在不能用了 QQ 10/22 23:51
→ Feis:不過這個 case 應該 C++03 也會錯. 10/22 23:52
→ applecool:是喔~ 10/22 23:54