[問題] 語法請教 (關於 decltype 與判斷 POD)
開發平台(Platform):
gcc 4.8, clang 3.3 都試過
問題(Question):
小弟有個需求,需要強制 template 傳進來的 type 使用 [] 後是 POD,
直覺採用以下方式
template<typename Obj>
void do(const Obj &p) {
union { decltype(p[0]) must_be_POD; };
...
}
我假設呼叫 do(std::vector<int>(1));
應該可以通過編譯,可是卻無法,而且看起來跟 POD 沒有關係
錯誤訊息
error: expected unqualified-id
請問該怎麼寫語法才正確呢?
另外要達到此需求是否有更好的作法呢?
謝謝
※ 編輯: applecool 來自: 123.241.67.33 (10/22 21:55)
→
10/22 21:58, , 1F
10/22 21:58, 1F
→
10/22 22:03, , 2F
10/22 22:03, 2F
→
10/22 22:03, , 3F
10/22 22:03, 3F
→
10/22 22:45, , 4F
10/22 22:45, 4F
→
10/22 23:10, , 5F
10/22 23:10, 5F
→
10/22 23:11, , 6F
10/22 23:11, 6F
→
10/22 23:26, , 7F
10/22 23:26, 7F
→
10/22 23:32, , 8F
10/22 23:32, 8F
→
10/22 23:32, , 9F
10/22 23:32, 9F
→
10/22 23:34, , 10F
10/22 23:34, 10F
→
10/22 23:35, , 11F
10/22 23:35, 11F
→
10/22 23:36, , 12F
10/22 23:36, 12F
→
10/22 23:36, , 13F
10/22 23:36, 13F
→
10/22 23:38, , 14F
10/22 23:38, 14F
→
10/22 23:38, , 15F
10/22 23:38, 15F
→
10/22 23:39, , 16F
10/22 23:39, 16F
→
10/22 23:40, , 17F
10/22 23:40, 17F
→
10/22 23:41, , 18F
10/22 23:41, 18F
在我的電腦上,就像我之前貼的連結範例
struct A {
int x;
private:
int y;
};
用 union 會過,可是他不是 POD,所以我還是會用 is_pod
不然怕編譯器最佳化開下去會炸掉
感謝各位指導!!!
※ 編輯: applecool 來自: 123.241.67.33 (10/22 23:44)
→
10/22 23:48, , 19F
10/22 23:48, 19F
→
10/22 23:51, , 20F
10/22 23:51, 20F
→
10/22 23:52, , 21F
10/22 23:52, 21F
→
10/22 23:54, , 22F
10/22 23:54, 22F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章