Value Meaning -compat=4 Compile for compatibility with C++ 4.0.1, C++ 4.1, and C++ 4.2 (Sets __cplusplus macro to 1.) -compat=5 Compile with full C++ 5.0 features. (Sets __cplusplus macro to 199711L.) This suggests that you could check whether __cplusplus is one rather than whether __SUNPRO_CC is less than 0x500, and things would work. I believe that this is Sun's recommended strategy. What do you think? David