map-macro icon indicating copy to clipboard operation
map-macro copied to clipboard

Does this actually work on MSVC?

Open cbeck88 opened this issue 8 years ago • 4 comments

Hi, I started adding appveyor testing to my lib that was using this, and I found that msvc wouldn't work with it. I thought that I had gotten it to work when I pasted into the online compiler... but now I'm not sure of that.

I googled around and found an SO question about __VA_ARGS__ on MSVC apparently being buggy:

http://stackoverflow.com/questions/5134523/msvc-doesnt-expand-va-args-correctly http://stackoverflow.com/questions/32399191/va-args-expansion-using-msvc http://stackoverflow.com/questions/21869917/visual-studio-va-args-issue

Do you know if map macro takes this into account?

Would you potentially be interested in a patch that implements one of these workarounds if not?

I'm not really a windows person... and I'm kind of hoping that MSVC will be abandoned en masse when clang is supported in visual studio. But this shouldn't actually be that hard to fix I think...

(It may very well actually be a bug in my code unrelated to map macro, I'm not totally sure.)

cbeck88 avatar Aug 06 '16 20:08 cbeck88

I don't have a Windows box at the moment, but if you provide a pull request, I would be happy to merge it. I think the approach in visit_struct looks reasonable. One could arguably use the VS2015 solution on all platforms, avoiding the ugly #ifdef, since it's simple enough.

swansontec avatar Oct 17 '16 22:10 swansontec

That commit didn't actually work unfortunately, I don't have a windows box either to test it right now. I plan to come back to this some time soon, or maybe over the holidays.

cbeck88 avatar Oct 28 '16 22:10 cbeck88

Seems not work under MSVC (VS2017)

9chu avatar Mar 14 '18 03:03 9chu

It works with /Zc:preprocessor which was added in VS 2019 / 16.5 (and a little earlier as /experimental:preprocessor).

akbyrd avatar Sep 29 '22 06:09 akbyrd