On Thu, May 20, 2021 at 08:17:54PM +0000, Akhil Goyal wrote: > > > > Yes it makes more sense now. But ideally it should be fixed in windows.
they won't be fixed in windows. it is extremely rare to withdraw something from a platform headers namespace and is avoided to maintain API compatibility no matter how horrible these macros are. > This may be just one such issue, there may be many more. > Will this also mean that nobody can define a local variable 'min'? that is correct. As well as a long list of other commonly used names not only from windows but other platform headers, standard library headers and keywords. > Any macro definition in a subsystem should have a prefix to denote that, > Just like in DPDK 'RTE_' is added. completely agree, best practice would be to avoid contaminating the applications namespace. > Macros with generic names should be avoided so that we do not get into > these issues. > > Adding more people for comments. I don't have a good feeling about > this change. there is no real choice, the platform header won't be "fixed" so it has to be dealt with and even thinking you can avoid it by just not including windows.h here keep in mind the consuming application will have to anyway so it's difficult to avoid.