MSconfig.h
//1
//2
//3
//4
// Use "#pragma once" instead of "ifndef MSCONFIG_H, define MSCONFIG_H,
// #endif" if you know you are using a Microsoft compiler, which we are
// if this file is being included. Using "pragma once" is much faster
// and less error prone.
#pragma once
// _MSC_VER == 1300 is the first release of Microsoft Visual C++ .NET.
// There are much fewer problems with this version. So much of this
// file will be skipped
#define ITERATORBASE_DEFECT 1
#if _MSC_VER >= 1300
#define SPEC_TEMPLATE_DECL_DEFECT 1
#endif
#define TEMPLATE_AMBIG7_DEFECT 1
#undef SSTREAM_DEFECT
# pragma warning(disable:4244) // conversion from double to float
# pragma warning(disable:4305) // truncation from const double to const float
# pragma warning(disable:4800) // forcing value to bool (performance warning)
#if _MSC_VER < 1300
/* Turn off annoying warning. */
# pragma warning(disable:4250) // inherits via dominance
# pragma warning(disable:4786) // '255' characters in the debug information
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#define SPEC_TEMPLATE_IMP_DEFECT 1
#define TEMPLATE_AMBIG_DEFECT 1
#define TERMINATE_DEFECT
#define BIND2ND_DEFECT 1
#define CLONE_DEFECT 1
#define ITERATOR_MEMBER_DEFECT 1
#define ITERATORBASE_DEFECT 1
#define MEMFUN1_DEFECT 1
#define TRANSFORM_DEFECT 1
#define VALARRAY_DEFECT 1
namespace std {
template < class T >
inline const T& max ( const T & a, const T & b )
{
// Break this into two lines to avoid an incorrect warning with
// Cfront-based compilers.
const T & retval = a < b ? b : a;
return retval;
}
template < class T >
inline const T& min ( const T & a, const T & b)
{
// Break this into two lines to avoid an incorrect warning with
// Cfront-based compilers.
const T & retval = b < a ? b : a;
return retval;
}
template < class T >
inline const T & abs ( const T & a )
{
const T & retval = a < 0 ? -a : a;
return retval;
}
} //end namespace std::
#endif