[問題] MACRO 展開遇到不可攜的問題
遇到一個g++ 可以成功編譯 , 但擺在VC (vs2015) 卻無法編譯成功
問題如下
http://ideone.com/TJW1ri
有把預期的結果標註再註解上
但VC 的compile error卻是
'std::pair<_Unrefwrap<_Ty>::type,_Unrefwrap<_Ty2>::type> std::make_pair(_Ty1
&&,_Ty2 &&)': expects 2 arguments - 3 provided
我看他vc的preprocess過的結果是
Foo(std::make_pair(a, b, "a, b"), std::make_pair(, ));
我不太理解他為啥會這樣產出結果, 有能力把這段code變的可攜嗎?
另外詢問一下
c++是不是variadic macro: __VA_ARGS__ 不是標準 所以盡量不要使用?
因為我一直遇到 必須要用##__VA_ARGS__ 可是compile出問題...
VC可以, g++要是標上-std=c++XX 就會出錯
例如
http://coliru.stacked-crooked.com/a/a314e9c3ac9e02e5
用ideone無法知道他怎麼下command的 他會對....
這麼簡單的case也會出問題 是不是也無法寫出可攜的程式在這情況下呢?
兩個問題 煩請各位解惑
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.186.168
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1445680934.A.58E.html
※ 編輯: dreamboat66 (180.218.186.168), 10/24/2015 18:05:28
※ 編輯: dreamboat66 (180.218.186.168), 10/24/2015 18:19:34
推
10/24 18:20, , 1F
10/24 18:20, 1F
→
10/24 18:21, , 2F
10/24 18:21, 2F
→
10/24 18:23, , 3F
10/24 18:23, 3F
→
10/24 18:34, , 4F
10/24 18:34, 4F
→
10/24 18:34, , 5F
10/24 18:34, 5F
→
10/24 18:34, , 6F
10/24 18:34, 6F
→
10/24 18:36, , 7F
10/24 18:36, 7F
→
10/24 18:37, , 8F
10/24 18:37, 8F
→
10/24 18:39, , 9F
10/24 18:39, 9F
→
10/24 18:39, , 10F
10/24 18:39, 10F
→
10/24 18:40, , 11F
10/24 18:40, 11F
→
10/24 18:40, , 12F
10/24 18:40, 12F
→
10/24 18:43, , 13F
10/24 18:43, 13F
→
10/24 18:43, , 14F
10/24 18:43, 14F
→
10/24 21:25, , 15F
10/24 21:25, 15F
→
10/24 21:25, , 16F
10/24 21:25, 16F
→
10/24 22:50, , 17F
10/24 22:50, 17F
→
10/24 22:51, , 18F
10/24 22:51, 18F
→
10/24 22:51, , 19F
10/24 22:51, 19F
推
10/24 22:54, , 20F
10/24 22:54, 20F
推
10/25 02:55, , 21F
10/25 02:55, 21F
→
10/25 02:56, , 22F
10/25 02:56, 22F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-3
13