diff options
Diffstat (limited to 'Source/cmStandardIncludes.h')
-rw-r--r-- | Source/cmStandardIncludes.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h index 21ca91c..dded33b 100644 --- a/Source/cmStandardIncludes.h +++ b/Source/cmStandardIncludes.h @@ -89,4 +89,44 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif +// check for the 720 compiler on the SGI +// which has some strange properties that I don't think are worth +// checking for in a general way in configure +#if defined(__sgi) && !defined(__GNUC__) +# if (_COMPILER_VERSION >= 730) +# define CM_SGI_CC_730 +# elif (_COMPILER_VERSION >= 720) +# define CM_SGI_CC_720 +# endif +#endif + + +# ifdef CM_SGI_CC_720 +// the 720 sgi compiler has std:: but not for the stream library, +// so we have to bring it into the std namespace by hand. +namespace std { +using ::ostream; +using ::istream; +using ::ios; +using ::cout; +using ::cerr; +using ::cin; +using ::ifstream; +using ::ofstream; +using ::strstream; +using ::endl; +using ::ends; +using ::flush; +} +// The string class is missing these operators so add them +inline bool operator!=(std::string const& a, const char* b) +{ return !(a==std::string(b)); } + +inline bool operator==(std::string const& a, const char* b) +{ return (a==std::string(b)); } +// for scoping is not ISO, so use the for hack +#define for if(false) {} else for + +# endif + #endif |