On Fri, Nov 15, 2013 at 3:41 PM, Yaron Keren <[email protected]> wrote:
>
> -_LIBCPP_WARNING("macro min is incompatible with C++. #undefing min")
> +_LIBCPP_WARNING("macro min is incompatible with C++. Try #define NOMINMAX "
> + "before any Windows header. #undefing min")
Incidentally, this warning has annoyed me in the past when compiling
MySQL 5.5 as C++. They have some code (in the name of portability, I'm
sure) equivalent to
#ifndef max
#define min(a,b) (a < b ? a : b)
#define max(a,b) (a > b ? a : b)
#endif
which I try to disable by putting
#define max max
in another header. By #undef'ing max, libc++ interferes with this
tactic — or rather, it's hard to tell for any given translation unit
whether it interferes with it or not (depending on the order of
#includes), which is even more distracting. I wonder whether it would
be possible for the libc++ header to use
#undef max
#define max max
instead of just "#undef max", or if the Standard prohibits that somehow.
Not that I expect a change to happen, but I figured I should publicly
register my particular use-case.
–Arthur
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits