X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fstlplus%2Fcontainers%2Fcontainers_fixes.hpp;fp=src%2Fmoof%2Fstlplus%2Fcontainers_fixes.hpp;h=ad29f99e2ed5908afe8b73a1d2ca74a3c23f3fa3;hp=618ef84eb6511df7bc760781d6f7ab44049823d0;hb=6b0a0d0efafe34d48ab344fca3b479553bd4e62c;hpb=85783316365181491a3e3c0c63659972477cebba diff --git a/src/moof/stlplus/containers_fixes.hpp b/src/stlplus/containers/containers_fixes.hpp old mode 100755 new mode 100644 similarity index 79% rename from src/moof/stlplus/containers_fixes.hpp rename to src/stlplus/containers/containers_fixes.hpp index 618ef84..ad29f99 --- a/src/moof/stlplus/containers_fixes.hpp +++ b/src/stlplus/containers/containers_fixes.hpp @@ -19,7 +19,6 @@ #ifdef _MSC_VER // Microsoft Visual Studio // shut up the following irritating warnings -// 4275 - VC6, exported class was derived from a class that was not exported // 4786 - VC6, identifier string exceeded maximum allowable length and was truncated (only affects debugger) // 4305 - VC6, identifier type was converted to a smaller type // 4503 - VC6, decorated name was longer than the maximum the compiler allows (only affects debugger) @@ -29,33 +28,16 @@ // 4355 - VC6, 'this' : used in base member initializer list // 4675 - VC7.1, "change" in function overload resolution _might_ have altered program // 4996 - VC8, 'xxxx' was declared deprecated -#pragma warning(disable: 4275 4786 4305 4503 4309 4290 4800 4355 4675 4996) +#pragma warning(disable: 4786 4305 4503 4309 4290 4800 4355 4675 4996) #endif #ifdef __BORLANDC__ // Borland // Shut up the following irritating warnings -// 8008 - Condition is always true. -// Whenever the compiler encounters a constant comparison that (due to -// the nature of the value being compared) is always true or false, it -// issues this warning and evaluates the condition at compile time. // 8026 - Functions with exception specifications are not expanded inline // 8027 - Functions with xxx are not expanded inline -// 8060 - Possibly incorrect assignment. -// This warning is generated when the compiler encounters an assignment -// operator as the main operator of a conditional expression (part of -// an if, while, or do-while statement). This is usually a -// typographical error for the equality operator. -// 8066 - Unreachable code. -// A break, continue, goto, or return statement was not followed by a -// label or the end of a loop or function. The compiler checks while, -// do, and for loops with a constant test condition, and attempts to -// recognize loops that can't fall through. -#pragma warn -8008 #pragma warn -8026 #pragma warn -8027 -#pragma warn -8060 -#pragma warn -8066 #endif //////////////////////////////////////////////////////////////////////////////// @@ -114,7 +96,7 @@ // - version 7 (.NET) (compiler v.13) requires a typename in a parameter specification but supports all // - version 8 (2005) (compiler v.14) requires parameters and templates, supports all #ifdef _MSC_VER -#if _MSC_VER < 1300 +#if _MSC_VER <= 1200 #undef TYPENAME #define TYPENAME #endif @@ -129,5 +111,22 @@ #endif #endif +//////////////////////////////////////////////////////////////////////////////// +// Member templates +// e.g. a template function in a template class + +// Not all compilers support them - this fix can be used to disable member +// templates for compilers that don't. Unfortunately that means that some +// functionality will be missing for those compilers. + +#define STLPLUS_MEMBER_TEMPLATES + +// Visual Studio v6 (compiler version 12) does not support them +#ifdef _MSC_VER +#if _MSC_VER <= 1200 +#undef STLPLUS_MEMBER_TEMPLATES +#endif +#endif + //////////////////////////////////////////////////////////////////////////////// #endif