diff --git a/wininst/include/CGAL/config/msvc7/CGAL/cl_1310.h b/wininst/include/CGAL/config/msvc7/CGAL/cl_1310.h index 87031cb294a..c750f3422b2 100644 --- a/wininst/include/CGAL/config/msvc7/CGAL/cl_1310.h +++ b/wininst/include/CGAL/config/msvc7/CGAL/cl_1310.h @@ -1,4 +1,4 @@ -// Copyright (c) 1997-2002 Utrecht University (The Netherlands), +// Copyright (c) 1996-2004 Utrecht University (The Netherlands), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), @@ -9,24 +9,14 @@ // published by the Free Software Foundation; version 2.1 of the License. // See the file LICENSE.LGPL distributed with CGAL. // -// Licensees holding a valid commercial license may use this file in -// accordance with the commercial license agreement provided with the software. -// // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // -// $URL$ -// $Id$ -// -// -// Author(s) : Radu Ursu - - -//+-------------------------------------------------------------------------- -// The compiler has to provide a Standard Template Library -//+-------------------------------------------------------------------------- -// STL test ok +// Author(s): the install_cgal script +// Compiler specific configuration file for CGAL 3.2-I-437 +// System: i686_CYGWINNT-5.1_CL.EXE-1310 +// generated by install_cgal 30348 //+-------------------------------------------------------------------------- //| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the //| standard C library functions in cctype (isdigit etc.) as macros. @@ -35,18 +25,39 @@ //#define CGAL_CFG_CCTYPE_MACRO_BUG 1 //+-------------------------------------------------------------------------- -//| The flag CGAL_CFG_EARLY_INSTANTIATION_BUG is set, if a compiler does not -//| not how to compile the following code. See the solution bellow. -//| Created to workaround a cl1300 bug +//| This flag is set, if the compiler does not properly parse comma separated +//| expressions in a base constructor call. (e.g. g++ 3.3). //+-------------------------------------------------------------------------- -//#define CGAL_CFG_EARLY_INSTANTIATION_BUG 1 +//#define CGAL_CFG_COMMA_BUG 1 //+-------------------------------------------------------------------------- -//| This flag is set, if the compiler does not promote enumeration types -//| (which depend on a template parameter) correctly when they are used -//| as int template arguments. (e.g. Borland 5.5) +//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler +//| crashes with some conversion operators. G++ 3.3.0 is affected by +//| this bug (it hits Darwin severely since it is the system compiler). //+-------------------------------------------------------------------------- -//#define CGAL_CFG_ENUM_BUG 1 +//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler wants you to remove the word +//| template in some complicated dependent types. +//| Any error with the message "Unexpected type name" is likely to be +//| related to this bug in sunpro. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler bugs when handling denormal values at +//| compile time. At least PGCC 5.1-3 has the bug. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler bugs with special features with IEEE 754 +//| handling, concerning is_valid() and is_finite() testing of infinity and +//| nans. The workaround is to use bitfield operations. +//| At least VC++, Borland and PGCC have the bug. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_IEEE_754_BUG 1 //+-------------------------------------------------------------------------- //| If a compiler (or assembler or linker) has problems with long names @@ -54,14 +65,6 @@ //+-------------------------------------------------------------------------- #define CGAL_CFG_LONGNAME_BUG 1 -//+-------------------------------------------------------------------------- -//| This flag is set, if the compiler does not match the most -//| specialized instance of a function template correctly, -//| but complains about multiple matches. -//| (e.g. VC++ 7) -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_MATCHING_BUG_2 1 - //+-------------------------------------------------------------------------- //| This flag is set, if the compiler does not match function arguments //| of pointer type correctly, when the return type depends on @@ -70,8 +73,51 @@ //#define CGAL_CFG_MATCHING_BUG_3 1 //+-------------------------------------------------------------------------- -//| This flag is set, if the compiler does not match member -//| definition to an existing declaration (eg. cl1310 Beta) +//| This flag is set, if a compiler cannot distinguish the signature +//| of overloaded function templates, which have arguments whose type +//| depends on the template parameter. +//| This bug appears for example on Sunpro 5.3 and 5.4. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_MATCHING_BUG_4 1 + +//+-------------------------------------------------------------------------- +//| This flag is set, if a compiler cannot distinguish the signature +//| of overloaded function templates, which have one template parameter +//| to be passed explicitely when being called. +//| This bug appears for example on g++ 3.3 and 3.4. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_MATCHING_BUG_5 1 + +//+-------------------------------------------------------------------------- +//| VC 7.3 does not recognize when an operator in a class +//| redefines the operator with the same signature in a base class +//| It happens with the regular triangulation. +//| No minimal testcase yet +//+-------------------------------------------------------------------------- +#define CGAL_CFG_MATCHING_BUG_6 1 + +//+-------------------------------------------------------------------------- +//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set, +//| if the std::vector class does not have defined template constructors. +//| This is a feature of SunPro 5.5. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1 + +//+-------------------------------------------------------------------------- +//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set +//| if the compiler cannot recognize the declaration of a nested +//| class as friend. +//| Compilers such as the Intel compiler 8.x (for linux or windows), +//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++ +//| standard is a bit vague on this issue, in other words what is referred +//| to as "bug" above, may not really be a bug. Hopefully, the next standard +//| will resolve this issue. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set, if the compiler does not match a member +//| definition to an existing declaration (eg., cl1310 Beta). //+-------------------------------------------------------------------------- #define CGAL_CFG_NET2003_MATCHING_BUG 1 @@ -119,6 +165,12 @@ //+-------------------------------------------------------------------------- //#define CGAL_CFG_NO_LOCALE 1 +//+-------------------------------------------------------------------------- +//| Tests if std::cout supports long double IO. +//| pgCC 5.2-2 has this bug (only has for double and float). +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1 + //+-------------------------------------------------------------------------- //| The long long built-in integral type is not part of the ISO C++ standard, //| but many compilers support it nevertheless since it's part of the ISO @@ -127,12 +179,6 @@ //+-------------------------------------------------------------------------- //#define CGAL_CFG_NO_LONG_LONG 1 -//+-------------------------------------------------------------------------- -//| If a compiler doesn't support partial specialisation of class templates, -//| the flag CGAL_CFG_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION is set. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION 1 - //+-------------------------------------------------------------------------- //| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not //| put the parts of the standard library inherited from the standard @@ -140,6 +186,12 @@ //+-------------------------------------------------------------------------- //#define CGAL_CFG_NO_STDC_NAMESPACE 1 +//+-------------------------------------------------------------------------- +//| A basic test for the STL. +//| If it fails, it probably means a bad CGAL installation. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_STL 1 + //+-------------------------------------------------------------------------- //| G++ 2.95.2 has problems with member functions implemented outside of //| the class body if this member function has a parameter type that is @@ -157,31 +209,73 @@ //#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 //+-------------------------------------------------------------------------- -//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set, if -//| a compiler does not support the definition of the members templates -//| out of line. The solution is to put the definition inside the class. -//| This is a feature of cl1200 and cl1300 +//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set, +//| if a compiler does not support the two stage name lookup. +//| This is a bug of G++ < 3.4 for example. +//| Note that the program fails when the feature works, +//| which is different from the other test programs. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler complains about an ambiguity between +//| a type and itself when some members are defined out of line. This is +//| a Sun CC bug. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1 + +//+-------------------------------------------------------------------------- +//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set, +//| if a compiler does not support the definition of member templates +//| out of line, i.e. outside class scope. The solution is to put the +//| definition inside the class. This is a feature of SunPro 5.5. //+-------------------------------------------------------------------------- //#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1 //+-------------------------------------------------------------------------- -//| If a compiler does not accept the overloading of a template function, when -//| the template returns a reference, while the overloading doesn't. -//| In that case, CGAL_CFG_RETURN_TYPE_BUG is set. -//| This bug shows up on VC++ 6, and VC++ 7 beta 2. +//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set, +//| if a compiler does not support the definition of member templates +//| out of line, i.e. outside class scope. The solution is to put the +//| definition inside the class. +//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG +//| is the return type of the member template.SunPro 5.5 should be OK with +//| this code. //+-------------------------------------------------------------------------- -//#define CGAL_CFG_RETURN_TYPE_BUG 1 +//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 //+-------------------------------------------------------------------------- -//| The flag CGAL_CFG_USING_NAMESPACE_BUG is set, if a compiler does not -//| not how to compile the following code. -//| Created to workaround a cl1300 bug +//| This flag is set if the compiler is Sun's compiler and it uses the +//| old Rogue Wave STL. +//| The workarounds consist in faking iterator_traits and using a wrapper +//| to reverse_iterator //+-------------------------------------------------------------------------- -//#define CGAL_CFG_USING_NAMESPACE_BUG 1 +//#define CGAL_CFG_SUNPRO_RWSTD 1 //+-------------------------------------------------------------------------- -//| This is a test-case for a bug in VC++ 7.0 beta2 that occurs in the kernel. -//| When the bug is present, CGAL_CFG_VC7_PRIVATE_TYPE_BUG is set. //+-------------------------------------------------------------------------- -//#define CGAL_CFG_VC7_PRIVATE_TYPE_BUG 1 +#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1 +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler doesn't support "using Base::Member;" in +//| a derived class. The workaround is to write a forwarder. +//| At least g++ 2.95 and SunPro CC 5.3 have this bug. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler bugs with some "using Base::Member;" in +//| a derived class. The workaround is to write a forwarder or not use using. +//| At least SunPro CC 5.3 has this bug where the typical error message is : +//| "Error: The function B::g() has not had a body defined." +//| Note that the subtlely is that the error message does not mention +//| "Member"... +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler bugs with some "using Base::Member;" in +//| a derived class, when there is a typedef of the base class. +//| The workaround is to write a forwarder or not use using. +//| At least MipsPRO CC 7.4 has this bug. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1