How are the __cplusplus directive defined in various compilers?
My compiler expands it to 199711L. What does that mean? I read that __cplusplus > 199711L signifies C++11. What are the possible expansions of this macro and what does it signify? The 199711L stands for Year=1997, Month = 11 (i.e., November of 1997) -- the date when the committee approved the standard that the rest of the ISO approved in early 1998. For the 2003 standard, there were few enough changes that the committee (apparently) decided to leave that value unchanged. For the 2011 standard, it's required to be defined as 201103L, (again, year=2011, month = 03) again meaning that the