diff --git a/.gitattributes b/.gitattributes index a4e099e6c09..47ee54a30af 100644 --- a/.gitattributes +++ b/.gitattributes @@ -336,7 +336,6 @@ BGL/doc_tex/BGL/fig/ex_bgl.gif -text svneol=unset#image/gif BGL/doc_tex/BGL/fig/ex_bgl.pdf -text svneol=unset#application/pdf BGL/doc_tex/BGL/fig/ex_bgl.pstex -text svneol=unset#application/postscript BGL/doc_tex/BGL/fig/ex_bgl.pstex_t -text svneol=unset#application/postscript -BGL/examples/BGL_polyhedron_3/kruskal_min_spanning_tree.hpp -text BGL/test/BGL/cgal_test eol=lf BGL/test/BGL/data/7_faces_traingle.off -text svneol=unset#application/octet-stream BGL/test/BGL/data/genus3.off -text svneol=unset#application/octet-stream @@ -677,7 +676,6 @@ Installation/config/support/S91-TAUCSWIN -text Installation/config/support/S92-TAUCS1 -text Installation/config/support/S93-TAUCS2 -text Installation/config/support/S96-TAUCS3 -text -Installation/include/CGAL/auto_link.h -text Interpolation/doc_tex/Interpolation/nn_coords.eps -text svneol=unset#application/postscript Interpolation/doc_tex/Interpolation/nn_coords.gif -text svneol=unset#image/gif Interpolation/doc_tex/Interpolation/nn_coords.ipe -text svneol=unset#application/postscript @@ -1819,7 +1817,6 @@ Ridges_3/examples/Ridges_3/data/poly2x^2+y^2-0.062500.off -text svneol=unset#app Ridges_3/test/Ridges_3/data/ellipsoid.off -text svneol=unset#application/octet-stream Robustness/demo/Robustness/help/index.html svneol=native#text/html Robustness/demo/Robustness/robustness.vcproj eol=crlf -STL_Extension/include/CGAL/Iterator_transform.h -text STL_Extension/include/CGAL/type_traits.h -text STL_Extension/test/STL_Extension/test_type_traits.cpp -text Scripts/developer_scripts/create_assertions.sh eol=lf @@ -2575,11 +2572,6 @@ window/test/WindowStream/test_window_stream_xy_3.cmd eol=lf wininst/cgal_config.bat eol=crlf wininst/developer_scripts/examples/master_71.vcproj -text wininst/developer_scripts/examples/master_80.vcproj -text -wininst/include/CGAL/config/msvc/CGAL/auto_link.h -text -wininst/include/CGAL/config/msvc/CGAL/cl_1310.h -text -wininst/include/CGAL/config/msvc/CGAL/cl_1400.h -text -wininst/include/CGAL/config/msvc/CGAL/compiler_config.h -text -wininst/include/CGAL/config/msvc/CGAL/icl_8_1.h -text wininst/src/CGAL/cgallib_71.vcproj -text wininst/src/CGAL/cgallib_80.vcproj -text wininst/winutils/make/bcc/leda/demo.bat eol=crlf diff --git a/BGL/examples/BGL_polyhedron_3/kruskal_min_spanning_tree.hpp b/BGL/examples/BGL_polyhedron_3/kruskal_min_spanning_tree.hpp index 00feefef8c4..a88862ef65a 100644 --- a/BGL/examples/BGL_polyhedron_3/kruskal_min_spanning_tree.hpp +++ b/BGL/examples/BGL_polyhedron_3/kruskal_min_spanning_tree.hpp @@ -1,164 +1,164 @@ -//======================================================================= -// -// -// -// -// THIS FILE HAS BEEN MODIFIED FOR CONST-CORRECTNESS -// February 2007, Fernando Cacciola (fernando.cacciola@gmail.com) -// -// -// -// -// -// -//======================================================================= -// Copyright 1997, 1998, 1999, 2000 University of Notre Dame. -// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -//======================================================================= -#ifndef BOOST_GRAPH_MST_KRUSKAL_HPP -#define BOOST_GRAPH_MST_KRUSKAL_HPP - -/* - *Minimum Spanning Tree - * Kruskal Algorithm - * - *Requirement: - * undirected graph - */ - -#include -#include -#include - -#include -#include -#include -#include -#include - - -namespace boost { - - // Kruskal's algorithm for Minimum Spanning Tree - // - // This is a greedy algorithm to calculate the Minimum Spanning Tree - // for an undirected graph with weighted edges. The output will be a - // set of edges. - // - - namespace detail { - - template - void - kruskal_mst_impl(const Graph& G, - OutputIterator spanning_tree_edges, - Rank rank, Parent parent, Weight weight) - { - typedef typename graph_traits::vertex_descriptor Vertex; - typedef typename graph_traits::edge_descriptor Edge; - //function_requires >(); - //function_requires >(); - //function_requires >(); - //function_requires >(); - //function_requires >(); - //function_requires >(); - typedef typename property_traits::value_type W_value; - typedef typename property_traits::value_type R_value; - typedef typename property_traits::value_type P_value; - //function_requires >(); - //function_requires >(); - //function_requires >(); - - disjoint_sets dset(rank, parent); - - typename graph_traits::vertex_iterator ui, uiend; - for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui) - dset.make_set(*ui); - - typedef indirect_cmp > weight_greater; - weight_greater wl(weight); - std::priority_queue, weight_greater> Q(wl); - /*push all edge into Q*/ - typename graph_traits::edge_iterator ei, eiend; - for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei) - Q.push(*ei); - - while (! Q.empty()) { - Edge e = Q.top(); - Q.pop(); - Vertex u = dset.find_set(source(e, G)); - Vertex v = dset.find_set(target(e, G)); - if ( u != v ) { - *spanning_tree_edges++ = e; - dset.link(u, v); - } - } - } - - } // namespace detail - - // Named Parameters Variants - - template - inline void - kruskal_minimum_spanning_tree(const Graph& g, - OutputIterator spanning_tree_edges) - { - typedef typename graph_traits::vertices_size_type size_type; - typedef typename graph_traits::vertex_descriptor vertex_t; - typedef typename property_map::type index_map_t; - typename graph_traits::vertices_size_type - n = num_vertices(g); - std::vector rank_map(n); - std::vector pred_map(n); - - detail::kruskal_mst_impl - (g, spanning_tree_edges, - make_iterator_property_map(rank_map.begin(), get(vertex_index, g), rank_map[0]), - make_iterator_property_map(pred_map.begin(), get(vertex_index, g), pred_map[0]), - get(edge_weight, g)); - } - - template - inline void - kruskal_minimum_spanning_tree(const Graph& g, - - OutputIterator spanning_tree_edges, - const bgl_named_params& params) - { - typedef typename graph_traits::vertices_size_type size_type; - typedef typename graph_traits::vertex_descriptor vertex_t; - typename graph_traits::vertices_size_type n; - n = is_default_param(get_param(params, vertex_rank)) - ? num_vertices(g) : 1; - std::vector rank_map(n); - n = is_default_param(get_param(params, vertex_predecessor)) - ? num_vertices(g) : 1; - std::vector pred_map(n); - - detail::kruskal_mst_impl - (g, spanning_tree_edges, - choose_param - (get_param(params, vertex_rank), - make_iterator_property_map - (rank_map.begin(), - choose_const_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])), - choose_param - (get_param(params, vertex_predecessor), - make_iterator_property_map - (pred_map.begin(), - choose_const_pmap(get_param(params, vertex_index), g, vertex_index), - pred_map[0])), - choose_const_pmap(get_param(params, edge_weight), g, edge_weight)); - } - -} // namespace boost - - -#endif // BOOST_GRAPH_MST_KRUSKAL_HPP - +//======================================================================= +// +// +// +// +// THIS FILE HAS BEEN MODIFIED FOR CONST-CORRECTNESS +// February 2007, Fernando Cacciola (fernando.cacciola@gmail.com) +// +// +// +// +// +// +//======================================================================= +// Copyright 1997, 1998, 1999, 2000 University of Notre Dame. +// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +//======================================================================= +#ifndef BOOST_GRAPH_MST_KRUSKAL_HPP +#define BOOST_GRAPH_MST_KRUSKAL_HPP + +/* + *Minimum Spanning Tree + * Kruskal Algorithm + * + *Requirement: + * undirected graph + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + + +namespace boost { + + // Kruskal's algorithm for Minimum Spanning Tree + // + // This is a greedy algorithm to calculate the Minimum Spanning Tree + // for an undirected graph with weighted edges. The output will be a + // set of edges. + // + + namespace detail { + + template + void + kruskal_mst_impl(const Graph& G, + OutputIterator spanning_tree_edges, + Rank rank, Parent parent, Weight weight) + { + typedef typename graph_traits::vertex_descriptor Vertex; + typedef typename graph_traits::edge_descriptor Edge; + //function_requires >(); + //function_requires >(); + //function_requires >(); + //function_requires >(); + //function_requires >(); + //function_requires >(); + typedef typename property_traits::value_type W_value; + typedef typename property_traits::value_type R_value; + typedef typename property_traits::value_type P_value; + //function_requires >(); + //function_requires >(); + //function_requires >(); + + disjoint_sets dset(rank, parent); + + typename graph_traits::vertex_iterator ui, uiend; + for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui) + dset.make_set(*ui); + + typedef indirect_cmp > weight_greater; + weight_greater wl(weight); + std::priority_queue, weight_greater> Q(wl); + /*push all edge into Q*/ + typename graph_traits::edge_iterator ei, eiend; + for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei) + Q.push(*ei); + + while (! Q.empty()) { + Edge e = Q.top(); + Q.pop(); + Vertex u = dset.find_set(source(e, G)); + Vertex v = dset.find_set(target(e, G)); + if ( u != v ) { + *spanning_tree_edges++ = e; + dset.link(u, v); + } + } + } + + } // namespace detail + + // Named Parameters Variants + + template + inline void + kruskal_minimum_spanning_tree(const Graph& g, + OutputIterator spanning_tree_edges) + { + typedef typename graph_traits::vertices_size_type size_type; + typedef typename graph_traits::vertex_descriptor vertex_t; + typedef typename property_map::type index_map_t; + typename graph_traits::vertices_size_type + n = num_vertices(g); + std::vector rank_map(n); + std::vector pred_map(n); + + detail::kruskal_mst_impl + (g, spanning_tree_edges, + make_iterator_property_map(rank_map.begin(), get(vertex_index, g), rank_map[0]), + make_iterator_property_map(pred_map.begin(), get(vertex_index, g), pred_map[0]), + get(edge_weight, g)); + } + + template + inline void + kruskal_minimum_spanning_tree(const Graph& g, + + OutputIterator spanning_tree_edges, + const bgl_named_params& params) + { + typedef typename graph_traits::vertices_size_type size_type; + typedef typename graph_traits::vertex_descriptor vertex_t; + typename graph_traits::vertices_size_type n; + n = is_default_param(get_param(params, vertex_rank)) + ? num_vertices(g) : 1; + std::vector rank_map(n); + n = is_default_param(get_param(params, vertex_predecessor)) + ? num_vertices(g) : 1; + std::vector pred_map(n); + + detail::kruskal_mst_impl + (g, spanning_tree_edges, + choose_param + (get_param(params, vertex_rank), + make_iterator_property_map + (rank_map.begin(), + choose_const_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])), + choose_param + (get_param(params, vertex_predecessor), + make_iterator_property_map + (pred_map.begin(), + choose_const_pmap(get_param(params, vertex_index), g, vertex_index), + pred_map[0])), + choose_const_pmap(get_param(params, edge_weight), g, edge_weight)); + } + +} // namespace boost + + +#endif // BOOST_GRAPH_MST_KRUSKAL_HPP + diff --git a/Installation/include/CGAL/auto_link.h b/Installation/include/CGAL/auto_link.h index 78fe8668d92..20d9cd80cef 100644 --- a/Installation/include/CGAL/auto_link.h +++ b/Installation/include/CGAL/auto_link.h @@ -1,27 +1,27 @@ -// Copyright (c) 1997-2007 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), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// 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: svn+ssh://CGAL/svn/cgal/trunk/Installation/include/CGAL/Sun_fixes.h $ -// $Id: Sun_fixes.h 28904 2006-02-28 15:11:51Z glisse $ -// -// -// Author(s) : Fernando Cacciola (fernando.cacciola@geometryfactory.com) - -// -// This file is generated by install_cgal for non-windows compilers (or cl.exe but via cygwin) -// The real file (for MSVC) is in /CGAL/config/msvc/CGAL/auto_link.h -// +// Copyright (c) 2007 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), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// 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) : Fernando Cacciola (fernando.cacciola@geometryfactory.com) + +// +// This file is for non-windows compilers running in non-windows platforms (such as cl.exe via cygwin) +// The real file (for MSVC) is in /CGAL/config/msvc/CGAL/auto_link.h +// diff --git a/STL_Extension/include/CGAL/Iterator_transform.h b/STL_Extension/include/CGAL/Iterator_transform.h index 8e698ee643c..a2bf63cf515 100644 --- a/STL_Extension/include/CGAL/Iterator_transform.h +++ b/STL_Extension/include/CGAL/Iterator_transform.h @@ -1,152 +1,152 @@ -// Copyright (c) 2003 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), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// 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: svn+ssh://CGAL/svn/cgal/trunk/STL_Extension/include/CGAL/Iterator_transform.h $ -// $Id: Iterator_transform.h 28567 2006-02-16 14:30:13Z lsaboret $ -// -// -// Author(s) : Michael Hoffmann -// Lutz Kettner -// Sylvain Pion -// Fernando Cacciola - -#ifndef CGAL_ITERATOR_TRANSFORM_H -#define CGAL_ITERATOR_TRANSFORM_H 1 - -#include - -CGAL_BEGIN_NAMESPACE - -template < class I, class Fct> -class Iterator_transform { -protected: - I nt; // The internal iterator. -public: - typedef Iterator_transform Self; - typedef I Iterator; // base iterator - typedef std::iterator_traits traits; - typedef typename traits::difference_type difference_type; - typedef typename traits::iterator_category iterator_category; - typedef typename traits::value_type base_value_type; - typedef typename traits::pointer base_pointer; - typedef typename traits::reference base_reference; - - typedef typename Fct::argument_type argument_type; - typedef typename Fct::result_type value_type; - - - // This iterator returns rvalues by design (allowing the conversion function to return new objects) - typedef value_type reference; - - // Use I_TYPE_MATCH_IF to find correct pointer type. - typedef I_TYPE_MATCH_IF< base_pointer, const base_value_type *, - const value_type *, value_type *> Match2; - typedef typename Match2::Result pointer; - - // CREATION - // -------- - - Iterator_transform() {} - Iterator_transform( I j) : nt(j) {} - - // make two iterators assignable if the underlying iterators are - template - Iterator_transform( const Iterator_transform& i2) - : nt( i2.current_iterator()) {} - - template - Self& operator= ( const Iterator_transform& i2) { - nt = i2.current_iterator(); - return *this; - } - - // OPERATIONS Forward Category - // --------------------------- - - Iterator current_iterator() const { return nt;} - bool operator==( const Self& i) const { return ( nt == i.nt); } - bool operator!=( const Self& i) const { return !(*this == i); } - - reference operator* () const - { - Fct fct; - return fct(*nt); - } - - Self& operator++() { - ++nt; - return *this; - } - Self operator++(int) { - Self tmp = *this; - ++*this; - return tmp; - } - - // OPERATIONS Bidirectional Category - // --------------------------------- - - Self& operator--() { - --nt; - return *this; - } - Self operator--(int) { - Self tmp = *this; - --*this; - return tmp; - } - - // OPERATIONS Random Access Category - // --------------------------------- - - Self& operator+=( difference_type n) { - nt += n; - return *this; - } - Self operator+( difference_type n) const { - Self tmp = *this; - return tmp += n; - } - Self& operator-=( difference_type n) { - return operator+=( -n); - } - Self operator-( difference_type n) const { - Self tmp = *this; - return tmp += -n; - } - difference_type operator-( const Self& i) const { return nt - i.nt; } - reference operator[]( difference_type n) const { - Self tmp = *this; - tmp += n; - return tmp.operator*(); - } - bool operator< ( const Self& i) const { return ( nt < i.nt); } - bool operator> ( const Self& i) const { return i < *this; } - bool operator<=( const Self& i) const { return !(i < *this); } - bool operator>=( const Self& i) const { return !(*this < i); } -}; - -template < class Dist, class Fct, class I> -inline -Iterator_transform -operator+( Dist n, Iterator_transform i) { - return i += n; -} - -CGAL_END_NAMESPACE -#endif // CGAL_Iterator_transform_H // -// EOF // +// Copyright (c) 2003 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), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// 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) : Michael Hoffmann +// Lutz Kettner +// Sylvain Pion +// Fernando Cacciola + +#ifndef CGAL_ITERATOR_TRANSFORM_H +#define CGAL_ITERATOR_TRANSFORM_H 1 + +#include + +CGAL_BEGIN_NAMESPACE + +template < class I, class Fct> +class Iterator_transform { +protected: + I nt; // The internal iterator. +public: + typedef Iterator_transform Self; + typedef I Iterator; // base iterator + typedef std::iterator_traits traits; + typedef typename traits::difference_type difference_type; + typedef typename traits::iterator_category iterator_category; + typedef typename traits::value_type base_value_type; + typedef typename traits::pointer base_pointer; + typedef typename traits::reference base_reference; + + typedef typename Fct::argument_type argument_type; + typedef typename Fct::result_type value_type; + + + // This iterator returns rvalues by design (allowing the conversion function to return new objects) + typedef value_type reference; + + // Use I_TYPE_MATCH_IF to find correct pointer type. + typedef I_TYPE_MATCH_IF< base_pointer, const base_value_type *, + const value_type *, value_type *> Match2; + typedef typename Match2::Result pointer; + + // CREATION + // -------- + + Iterator_transform() {} + Iterator_transform( I j) : nt(j) {} + + // make two iterators assignable if the underlying iterators are + template + Iterator_transform( const Iterator_transform& i2) + : nt( i2.current_iterator()) {} + + template + Self& operator= ( const Iterator_transform& i2) { + nt = i2.current_iterator(); + return *this; + } + + // OPERATIONS Forward Category + // --------------------------- + + Iterator current_iterator() const { return nt;} + bool operator==( const Self& i) const { return ( nt == i.nt); } + bool operator!=( const Self& i) const { return !(*this == i); } + + reference operator* () const + { + Fct fct; + return fct(*nt); + } + + Self& operator++() { + ++nt; + return *this; + } + Self operator++(int) { + Self tmp = *this; + ++*this; + return tmp; + } + + // OPERATIONS Bidirectional Category + // --------------------------------- + + Self& operator--() { + --nt; + return *this; + } + Self operator--(int) { + Self tmp = *this; + --*this; + return tmp; + } + + // OPERATIONS Random Access Category + // --------------------------------- + + Self& operator+=( difference_type n) { + nt += n; + return *this; + } + Self operator+( difference_type n) const { + Self tmp = *this; + return tmp += n; + } + Self& operator-=( difference_type n) { + return operator+=( -n); + } + Self operator-( difference_type n) const { + Self tmp = *this; + return tmp += -n; + } + difference_type operator-( const Self& i) const { return nt - i.nt; } + reference operator[]( difference_type n) const { + Self tmp = *this; + tmp += n; + return tmp.operator*(); + } + bool operator< ( const Self& i) const { return ( nt < i.nt); } + bool operator> ( const Self& i) const { return i < *this; } + bool operator<=( const Self& i) const { return !(i < *this); } + bool operator>=( const Self& i) const { return !(*this < i); } +}; + +template < class Dist, class Fct, class I> +inline +Iterator_transform +operator+( Dist n, Iterator_transform i) { + return i += n; +} + +CGAL_END_NAMESPACE +#endif // CGAL_Iterator_transform_H // +// EOF // diff --git a/wininst/developer_scripts/examples/C2vcproj b/wininst/developer_scripts/examples/C2vcproj index 5f1114f218a..862108684de 100755 --- a/wininst/developer_scripts/examples/C2vcproj +++ b/wininst/developer_scripts/examples/C2vcproj @@ -29,10 +29,10 @@ if [ -d $h ]; then k=`echo $i|sed -e "s/\.$ext//"`; # Create $jp VC++ 7.1 project file if it doesn't exist - jp=`echo $i|sed -e "s/\.$ext/\_VC71.vcproj/"`; + jp=`echo $i|sed -e "s/\.$ext/\_71.vcproj/"`; if [[ ! -e $jp ]]; then echo "Creating $jp" - sed -e"s/master/$k/g" ../../developer_scripts/examples/master_VC71.vcproj > ./text/temp.txt; + sed -e"s/master/$k/g" ../../developer_scripts/examples/master_71.vcproj > ./text/temp.txt; sed -e"s/EXT/$ext/g" ./text/temp.txt > ./text/temp2.txt; sed -e"s/test_msvc71.exe/$ofn/g" ./text/temp2.txt > ./text/temp3.txt; sed -e"s/test_msvc71/$k/g" ./text/temp3.txt > ./text/$jp; @@ -41,10 +41,10 @@ if [ -d $h ]; then fi # Create $jp VC++ 8.0 project file if it doesn't exist - jp=`echo $i|sed -e "s/\.$ext/\_VC80.vcproj/"`; + jp=`echo $i|sed -e "s/\.$ext/\_80.vcproj/"`; if [[ ! -e $jp ]]; then echo "Creating $jp" - sed -e"s/master/$k/g" ../../developer_scripts/examples/master_VC80.vcproj > ./text/temp.txt; + sed -e"s/master/$k/g" ../../developer_scripts/examples/master_80.vcproj > ./text/temp.txt; sed -e"s/EXT/$ext/g" ./text/temp.txt > ./text/temp2.txt; sed -e"s/test_msvc80.exe/$ofn/g" ./text/temp2.txt > ./text/temp3.txt; sed -e"s/test_msvc80/$k/g" ./text/temp3.txt > ./text/$jp; diff --git a/wininst/include/CGAL/config/msvc/CGAL/auto_link.h b/wininst/include/CGAL/config/msvc/CGAL/auto_link.h index fd87483d2b3..13a0b07ff53 100644 --- a/wininst/include/CGAL/config/msvc/CGAL/auto_link.h +++ b/wininst/include/CGAL/config/msvc/CGAL/auto_link.h @@ -1,331 +1,331 @@ -// This header file is a copy of "boost/config/auto_link.hpp" -// but slightly modified to accomodate CGAL libraries. -// -// Modified for CGAL by: -// Fernando Cacciola -// February 2007 -// -//-------------------------------------------------------------------------------------- -// -// (C) Copyright John Maddock 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -/************************************************************************* - -USAGE: -~~~~~~ - -Before including this header you must define one or more of define the following macros: - -CGAL_LIB_NAME: Required: A string containing the basename of the library, - for example boost_regex. -CGAL_LIB_TOOLSET: Optional: the base name of the toolset. -CGAL_LIB_DIAGNOSTIC: Optional: when set the header will print out the name - of the library selected (useful for debugging). -CGAL_AUTO_LINK_NOMANGLE: Specifies that we should link to CGAL_LIB_NAME.lib, - rather than a mangled-name version. - -ALL these macros will be undef'ed at the end of the header, even though they are defined from the outside. -That means you must always define them before including this. - -Further, this header has no include guards because you can reuse it several times with different -macros (arguments) in order to link different libraries. -Be sure to include it only once for each target library! - -Algorithm: -~~~~~~~~~~ - -Libraries for Borland and Microsoft compilers are automatically -selected here, the name of the lib is selected according to the following -formula: - -CGAL_LIB_NAME - + "_" - + CGAL_LIB_TOOLSET - + CGAL_LIB_THREAD_OPT - + CGAL_LIB_RT_OPT - -These are defined as: - -CGAL_LIB_NAME: The base name of the lib ( for example boost_regex). - -CGAL_LIB_TOOLSET: The compiler toolset name (vc71, vc80 etc). - -CGAL_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. - -CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used, - contains one or more of the following letters after - a hiphen: - - s static runtime (dynamic if not present). - d debug build (release if not present). - g debug/diagnostic runtime (release if not present). - p STLPort Build. - - -***************************************************************************/ - -#ifdef __cplusplus -# ifndef BOOST_CONFIG_HPP -# include -# endif -#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) -// -// C language compatability (no, honestly) -// -# define BOOST_MSVC _MSC_VER -# define BOOST_STRINGIZEIZE(X) BOOST_DO_STRINGIZE(X) -# define BOOST_DO_STRINGIZE(X) #X -#endif -// -// Only include what follows for known and supported compilers: -// -#if defined(BOOST_MSVC) \ - || defined(__BORLANDC__) \ - || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) - -#ifndef CGAL_LIB_NAME -# error "Macro CGAL_LIB_NAME not set (internal error)" -#endif - -// -// error check: -// -#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) -# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors") -# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes") -# error "Incompatible build options" -#endif -// -// select toolset if not defined already: -// -#ifndef CGAL_LIB_TOOLSET -#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200) - - // vc6: -# define CGAL_LIB_TOOLSET "vc6" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) - - // vc7: -# define CGAL_LIB_TOOLSET "vc7" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) - - // vc71: -# define CGAL_LIB_TOOLSET "vc71" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) - - // vc80: -# define CGAL_LIB_TOOLSET "vc80" - -#elif defined(__BORLANDC__) - - // CBuilder 6: -# define CGAL_LIB_TOOLSET "bcb" - -#elif defined(__ICL) - - // Intel C++, no version number: -# define CGAL_LIB_TOOLSET "iw" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) - - // Metrowerks CodeWarrior 8.x -# define CGAL_LIB_TOOLSET "cw8" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) - - // Metrowerks CodeWarrior 9.x -# define CGAL_LIB_TOOLSET "cw9" - -#endif -#endif // CGAL_LIB_TOOLSET - -// -// select thread opt: -// -#if defined(_MT) || defined(__MT__) -# define CGAL_LIB_THREAD_OPT "-mt" -#else -# define CGAL_LIB_THREAD_OPT -#endif - -#if defined(_MSC_VER) || defined(__MWERKS__) - -# ifdef _DLL - -# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define CGAL_LIB_RT_OPT "-gdp" -# elif defined(_DEBUG) -# define CGAL_LIB_RT_OPT "-gdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define CGAL_LIB_RT_OPT "-p" -# endif - -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define CGAL_LIB_RT_OPT "-gdpn" -# elif defined(_DEBUG) -# define CGAL_LIB_RT_OPT "-gdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define CGAL_LIB_RT_OPT "-pn" -# endif - -# else - -# if defined(_DEBUG) -# define CGAL_LIB_RT_OPT "-gd" -# else -# define CGAL_LIB_RT_OPT -# endif - -# endif - -# else - -# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define CGAL_LIB_RT_OPT "-sgdp" -# elif defined(_DEBUG) -# define CGAL_LIB_RT_OPT "-sgdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define CGAL_LIB_RT_OPT "-sp" -# endif - -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define CGAL_LIB_RT_OPT "-sgdpn" -# elif defined(_DEBUG) -# define CGAL_LIB_RT_OPT "-sgdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define CGAL_LIB_RT_OPT "-spn" -# endif - -# else - -# if defined(_DEBUG) -# define CGAL_LIB_RT_OPT "-sgd" -# else -# define CGAL_LIB_RT_OPT "-s" -# endif - -# endif - -# endif - -#elif defined(__BORLANDC__) - -// -// figure out whether we want the debug builds or not: -// -#if __BORLANDC__ > 0x561 -#pragma defineonoption CGAL_BORLAND_DEBUG -v -#endif -// -// sanity check: -// -#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) -#error "Pre-built versions of the CGAL libraries are not provided in STLPort-debug form" -#endif - -# ifdef _RTLDLL - -# ifdef CGAL_BORLAND_DEBUG -# define CGAL_LIB_RT_OPT "-d" -# else -# define CGAL_LIB_RT_OPT -# endif - -# else - -# ifdef CGAL_BORLAND_DEBUG -# define CGAL_LIB_RT_OPT "-sd" -# else -# define CGAL_LIB_RT_OPT "-s" -# endif - -# endif - -#endif - -// -// now include the lib: -// -#if defined(CGAL_LIB_NAME) \ - && defined(CGAL_LIB_TOOLSET) \ - && defined(CGAL_LIB_THREAD_OPT) \ - && defined(CGAL_LIB_RT_OPT) \ - -#ifndef CGAL_AUTO_LINK_NOMANGLE -# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) "-" CGAL_LIB_TOOLSET CGAL_LIB_THREAD_OPT CGAL_LIB_RT_OPT ".lib" -#else -# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) ".lib" -#endif - -#ifndef CGAL_AUTO_LINK_NOMANGLE -# pragma comment(lib, CGAL_LIB_FULL_NAME ) -# ifdef CGAL_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME ) -# endif -#endif - -#else -# error "some required macros where not defined (internal logic error)." -#endif - - -#endif // _MSC_VER || __BORLANDC__ - -// -// finally undef any macros we may have set: -// -#if defined(CGAL_LIB_NAME) -# undef CGAL_LIB_NAME -#endif -// Don't undef this one: it can be set by the user and should be the -// same for all libraries: -//#if defined(CGAL_LIB_TOOLSET) -//# undef CGAL_LIB_TOOLSET -//#endif -#if defined(CGAL_LIB_THREAD_OPT) -# undef CGAL_LIB_THREAD_OPT -#endif -#if defined(CGAL_LIB_RT_OPT) -# undef CGAL_LIB_RT_OPT -#endif -#if defined(CGAL_LIB_LINK_OPT) -# undef CGAL_LIB_LINK_OPT -#endif -#if defined(CGAL_AUTO_LINK_NOMANGLE) -# undef CGAL_AUTO_LINK_NOMANGLE -#endif -#if defined(CGAL_LIB_FULL_NAME) -# undef CGAL_LIB_FULL_NAME -#endif - - - - - - - - - - +// This header file is a copy of "boost/config/auto_link.hpp" +// but slightly modified to accomodate CGAL libraries. +// +// Modified for CGAL by: +// Fernando Cacciola +// February 2007 +// +//-------------------------------------------------------------------------------------- +// +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +/************************************************************************* + +USAGE: +~~~~~~ + +Before including this header you must define one or more of define the following macros: + +CGAL_LIB_NAME: Required: A string containing the basename of the library, + for example boost_regex. +CGAL_LIB_TOOLSET: Optional: the base name of the toolset. +CGAL_LIB_DIAGNOSTIC: Optional: when set the header will print out the name + of the library selected (useful for debugging). +CGAL_AUTO_LINK_NOMANGLE: Specifies that we should link to CGAL_LIB_NAME.lib, + rather than a mangled-name version. + +ALL these macros will be undef'ed at the end of the header, even though they are defined from the outside. +That means you must always define them before including this. + +Further, this header has no include guards because you can reuse it several times with different +macros (arguments) in order to link different libraries. +Be sure to include it only once for each target library! + +Algorithm: +~~~~~~~~~~ + +Libraries for Borland and Microsoft compilers are automatically +selected here, the name of the lib is selected according to the following +formula: + +CGAL_LIB_NAME + + "_" + + CGAL_LIB_TOOLSET + + CGAL_LIB_THREAD_OPT + + CGAL_LIB_RT_OPT + +These are defined as: + +CGAL_LIB_NAME: The base name of the lib ( for example boost_regex). + +CGAL_LIB_TOOLSET: The compiler toolset name (vc71, vc80 etc). + +CGAL_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. + +CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used, + contains one or more of the following letters after + a hiphen: + + s static runtime (dynamic if not present). + d debug build (release if not present). + g debug/diagnostic runtime (release if not present). + p STLPort Build. + + +***************************************************************************/ + +#ifdef __cplusplus +# ifndef BOOST_CONFIG_HPP +# include +# endif +#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) +// +// C language compatability (no, honestly) +// +# define BOOST_MSVC _MSC_VER +# define BOOST_STRINGIZEIZE(X) BOOST_DO_STRINGIZE(X) +# define BOOST_DO_STRINGIZE(X) #X +#endif +// +// Only include what follows for known and supported compilers: +// +#if defined(BOOST_MSVC) \ + || defined(__BORLANDC__) \ + || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ + || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) + +#ifndef CGAL_LIB_NAME +# error "Macro CGAL_LIB_NAME not set (internal error)" +#endif + +// +// error check: +// +#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) +# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors") +# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes") +# error "Incompatible build options" +#endif +// +// select toolset if not defined already: +// +#ifndef CGAL_LIB_TOOLSET +#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200) + + // vc6: +# define CGAL_LIB_TOOLSET "vc6" + +#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) + + // vc7: +# define CGAL_LIB_TOOLSET "vc7" + +#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) + + // vc71: +# define CGAL_LIB_TOOLSET "vc71" + +#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) + + // vc80: +# define CGAL_LIB_TOOLSET "vc80" + +#elif defined(__BORLANDC__) + + // CBuilder 6: +# define CGAL_LIB_TOOLSET "bcb" + +#elif defined(__ICL) + + // Intel C++, no version number: +# define CGAL_LIB_TOOLSET "iw" + +#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) + + // Metrowerks CodeWarrior 8.x +# define CGAL_LIB_TOOLSET "cw8" + +#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) + + // Metrowerks CodeWarrior 9.x +# define CGAL_LIB_TOOLSET "cw9" + +#endif +#endif // CGAL_LIB_TOOLSET + +// +// select thread opt: +// +#if defined(_MT) || defined(__MT__) +# define CGAL_LIB_THREAD_OPT "-mt" +#else +# define CGAL_LIB_THREAD_OPT +#endif + +#if defined(_MSC_VER) || defined(__MWERKS__) + +# ifdef _DLL + +# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define CGAL_LIB_RT_OPT "-gdp" +# elif defined(_DEBUG) +# define CGAL_LIB_RT_OPT "-gdp" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define CGAL_LIB_RT_OPT "-p" +# endif + +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define CGAL_LIB_RT_OPT "-gdpn" +# elif defined(_DEBUG) +# define CGAL_LIB_RT_OPT "-gdpn" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define CGAL_LIB_RT_OPT "-pn" +# endif + +# else + +# if defined(_DEBUG) +# define CGAL_LIB_RT_OPT "-gd" +# else +# define CGAL_LIB_RT_OPT +# endif + +# endif + +# else + +# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define CGAL_LIB_RT_OPT "-sgdp" +# elif defined(_DEBUG) +# define CGAL_LIB_RT_OPT "-sgdp" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define CGAL_LIB_RT_OPT "-sp" +# endif + +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define CGAL_LIB_RT_OPT "-sgdpn" +# elif defined(_DEBUG) +# define CGAL_LIB_RT_OPT "-sgdpn" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define CGAL_LIB_RT_OPT "-spn" +# endif + +# else + +# if defined(_DEBUG) +# define CGAL_LIB_RT_OPT "-sgd" +# else +# define CGAL_LIB_RT_OPT "-s" +# endif + +# endif + +# endif + +#elif defined(__BORLANDC__) + +// +// figure out whether we want the debug builds or not: +// +#if __BORLANDC__ > 0x561 +#pragma defineonoption CGAL_BORLAND_DEBUG -v +#endif +// +// sanity check: +// +#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) +#error "Pre-built versions of the CGAL libraries are not provided in STLPort-debug form" +#endif + +# ifdef _RTLDLL + +# ifdef CGAL_BORLAND_DEBUG +# define CGAL_LIB_RT_OPT "-d" +# else +# define CGAL_LIB_RT_OPT +# endif + +# else + +# ifdef CGAL_BORLAND_DEBUG +# define CGAL_LIB_RT_OPT "-sd" +# else +# define CGAL_LIB_RT_OPT "-s" +# endif + +# endif + +#endif + +// +// now include the lib: +// +#if defined(CGAL_LIB_NAME) \ + && defined(CGAL_LIB_TOOLSET) \ + && defined(CGAL_LIB_THREAD_OPT) \ + && defined(CGAL_LIB_RT_OPT) \ + +#ifndef CGAL_AUTO_LINK_NOMANGLE +# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) "-" CGAL_LIB_TOOLSET CGAL_LIB_THREAD_OPT CGAL_LIB_RT_OPT ".lib" +#else +# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) ".lib" +#endif + +#ifndef CGAL_AUTO_LINK_NOMANGLE +# pragma comment(lib, CGAL_LIB_FULL_NAME ) +# ifdef CGAL_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME ) +# endif +#endif + +#else +# error "some required macros where not defined (internal logic error)." +#endif + + +#endif // _MSC_VER || __BORLANDC__ + +// +// finally undef any macros we may have set: +// +#if defined(CGAL_LIB_NAME) +# undef CGAL_LIB_NAME +#endif +// Don't undef this one: it can be set by the user and should be the +// same for all libraries: +//#if defined(CGAL_LIB_TOOLSET) +//# undef CGAL_LIB_TOOLSET +//#endif +#if defined(CGAL_LIB_THREAD_OPT) +# undef CGAL_LIB_THREAD_OPT +#endif +#if defined(CGAL_LIB_RT_OPT) +# undef CGAL_LIB_RT_OPT +#endif +#if defined(CGAL_LIB_LINK_OPT) +# undef CGAL_LIB_LINK_OPT +#endif +#if defined(CGAL_AUTO_LINK_NOMANGLE) +# undef CGAL_AUTO_LINK_NOMANGLE +#endif +#if defined(CGAL_LIB_FULL_NAME) +# undef CGAL_LIB_FULL_NAME +#endif + + + + + + + + + + diff --git a/wininst/include/CGAL/config/msvc/CGAL/cl_1310.h b/wininst/include/CGAL/config/msvc/CGAL/cl_1310.h index d301ba178c9..10b2c9e0a45 100644 --- a/wininst/include/CGAL/config/msvc/CGAL/cl_1310.h +++ b/wininst/include/CGAL/config/msvc/CGAL/cl_1310.h @@ -1,289 +1,289 @@ -// 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), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; version 2.1 of the License. -// See the file LICENSE.LGPL distributed with CGAL. -// -// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -// -// 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. -//| According to the standard they have to be functions. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 - -//+-------------------------------------------------------------------------- -//| 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_COMMA_BUG 1 - -//+-------------------------------------------------------------------------- -//| 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_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 -//| CGAL_CFG_LONGNAME_BUG is set. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_LONGNAME_BUG 1 - -//+-------------------------------------------------------------------------- -//| This flag is set, if the compiler does not match function arguments -//| of pointer type correctly, when the return type depends on -//| the parameter's type. (e.g. sun C++ 5.3) -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_MATCHING_BUG_3 1 - -//+-------------------------------------------------------------------------- -//| 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 - -//+-------------------------------------------------------------------------- -//| When template implementation files are not included in the source files, -//| a compiler may attempt to find the unincluded template bodies -//| automatically. For example, suppose that the following conditions are -//| all true. -//| -//| - template entity ABC::f is declared in file xyz.h -//| - an instantiation of ABC::f is required in a compilation -//| - no definition of ABC::f appears in the source code processed by the -//| compilation -//| -//| In this case, the compiler may look to see if the source file xyz.n exists, -//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is -//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 - -//+-------------------------------------------------------------------------- -//| The byte order of a machine architecture distinguishes into -//| big-endian and little-endian machines. -//| The following definition is set if it is a little-endian machine. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_BIG_ENDIAN 1 - -//+-------------------------------------------------------------------------- -//| This flag is set if the compiler doesn't support the operator Koenig -//| lookup. That is, it does not search in the namespace of the arguments for -//| the function. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know (g++-2.95) -//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) -//| CGAL_CFG_NO_LIMITS is set. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_LIMITS 1 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know the locale classic -//| CGAL_CFG_NO_LOCALE is set. -//+-------------------------------------------------------------------------- -//#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 -//| C standard. -//| The following definition is set if it is supported. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_LONG_LONG 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 -//| C library in namespace std. (only tests for the symbols used in CGAL) -//+-------------------------------------------------------------------------- -//#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 -//| dependant on a template in the template parameter list of the class. A -//| workaround would be to implement the member function inline in the class. -//| The following definition is set if this error error occurs. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 - -//+-------------------------------------------------------------------------- -//| Nested templates in template parameter, such as 'template < -//| template class A>' are not supported by any compiler. -//| The following definition is set if they are not supported. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 - -//+-------------------------------------------------------------------------- -//| 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 - -//+-------------------------------------------------------------------------- -//| 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_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 - -//+-------------------------------------------------------------------------- -//| 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_SUNPRO_RWSTD 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 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1). -//| nextafter() is part of ISO C99, but not ISO C++98 (hence instead of ). -//| CGAL_CFG_NO_NEXTAFTER is set. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_NEXTAFTER - +// 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), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; version 2.1 of the License. +// See the file LICENSE.LGPL distributed with CGAL. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// 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. +//| According to the standard they have to be functions. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 + +//+-------------------------------------------------------------------------- +//| 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_COMMA_BUG 1 + +//+-------------------------------------------------------------------------- +//| 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_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 +//| CGAL_CFG_LONGNAME_BUG is set. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_LONGNAME_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set, if the compiler does not match function arguments +//| of pointer type correctly, when the return type depends on +//| the parameter's type. (e.g. sun C++ 5.3) +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_MATCHING_BUG_3 1 + +//+-------------------------------------------------------------------------- +//| 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 + +//+-------------------------------------------------------------------------- +//| When template implementation files are not included in the source files, +//| a compiler may attempt to find the unincluded template bodies +//| automatically. For example, suppose that the following conditions are +//| all true. +//| +//| - template entity ABC::f is declared in file xyz.h +//| - an instantiation of ABC::f is required in a compilation +//| - no definition of ABC::f appears in the source code processed by the +//| compilation +//| +//| In this case, the compiler may look to see if the source file xyz.n exists, +//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is +//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 + +//+-------------------------------------------------------------------------- +//| The byte order of a machine architecture distinguishes into +//| big-endian and little-endian machines. +//| The following definition is set if it is a little-endian machine. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_BIG_ENDIAN 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler doesn't support the operator Koenig +//| lookup. That is, it does not search in the namespace of the arguments for +//| the function. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know (g++-2.95) +//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) +//| CGAL_CFG_NO_LIMITS is set. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LIMITS 1 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know the locale classic +//| CGAL_CFG_NO_LOCALE is set. +//+-------------------------------------------------------------------------- +//#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 +//| C standard. +//| The following definition is set if it is supported. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LONG_LONG 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 +//| C library in namespace std. (only tests for the symbols used in CGAL) +//+-------------------------------------------------------------------------- +//#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 +//| dependant on a template in the template parameter list of the class. A +//| workaround would be to implement the member function inline in the class. +//| The following definition is set if this error error occurs. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 + +//+-------------------------------------------------------------------------- +//| Nested templates in template parameter, such as 'template < +//| template class A>' are not supported by any compiler. +//| The following definition is set if they are not supported. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 + +//+-------------------------------------------------------------------------- +//| 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 + +//+-------------------------------------------------------------------------- +//| 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_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 + +//+-------------------------------------------------------------------------- +//| 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_SUNPRO_RWSTD 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 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1). +//| nextafter() is part of ISO C99, but not ISO C++98 (hence instead of ). +//| CGAL_CFG_NO_NEXTAFTER is set. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_NEXTAFTER + diff --git a/wininst/include/CGAL/config/msvc/CGAL/cl_1400.h b/wininst/include/CGAL/config/msvc/CGAL/cl_1400.h index 3835e9f1767..3be72992a9f 100644 --- a/wininst/include/CGAL/config/msvc/CGAL/cl_1400.h +++ b/wininst/include/CGAL/config/msvc/CGAL/cl_1400.h @@ -1,288 +1,288 @@ -// 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), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; version 2.1 of the License. -// See the file LICENSE.LGPL distributed with CGAL. -// -// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -// -// 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. -//| According to the standard they have to be functions. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 - -//+-------------------------------------------------------------------------- -//| 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_COMMA_BUG 1 - -//+-------------------------------------------------------------------------- -//| 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_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 -//| CGAL_CFG_LONGNAME_BUG is set. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_LONGNAME_BUG 1 - -//+-------------------------------------------------------------------------- -//| This flag is set, if the compiler does not match function arguments -//| of pointer type correctly, when the return type depends on -//| the parameter's type. (e.g. sun C++ 5.3) -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_MATCHING_BUG_3 1 - -//+-------------------------------------------------------------------------- -//| 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 - -//+-------------------------------------------------------------------------- -//| When template implementation files are not included in the source files, -//| a compiler may attempt to find the unincluded template bodies -//| automatically. For example, suppose that the following conditions are -//| all true. -//| -//| - template entity ABC::f is declared in file xyz.h -//| - an instantiation of ABC::f is required in a compilation -//| - no definition of ABC::f appears in the source code processed by the -//| compilation -//| -//| In this case, the compiler may look to see if the source file xyz.n exists, -//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is -//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 - -//+-------------------------------------------------------------------------- -//| The byte order of a machine architecture distinguishes into -//| big-endian and little-endian machines. -//| The following definition is set if it is a little-endian machine. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_BIG_ENDIAN 1 - -//+-------------------------------------------------------------------------- -//| This flag is set if the compiler doesn't support the operator Koenig -//| lookup. That is, it does not search in the namespace of the arguments for -//| the function. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know (g++-2.95) -//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) -//| CGAL_CFG_NO_LIMITS is set. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_LIMITS 1 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know the locale classic -//| CGAL_CFG_NO_LOCALE is set. -//+-------------------------------------------------------------------------- -//#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 -//| C standard. -//| The following definition is set if it is supported. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_LONG_LONG 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 -//| C library in namespace std. (only tests for the symbols used in CGAL) -//+-------------------------------------------------------------------------- -//#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 -//| dependant on a template in the template parameter list of the class. A -//| workaround would be to implement the member function inline in the class. -//| The following definition is set if this error error occurs. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 - -//+-------------------------------------------------------------------------- -//| Nested templates in template parameter, such as 'template < -//| template class A>' are not supported by any compiler. -//| The following definition is set if they are not supported. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 - -//+-------------------------------------------------------------------------- -//| 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 - -//+-------------------------------------------------------------------------- -//| 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_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 - -//+-------------------------------------------------------------------------- -//| 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_SUNPRO_RWSTD 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 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1). -//| nextafter() is part of ISO C99, but not ISO C++98 (hence instead of ). -//| CGAL_CFG_NO_NEXTAFTER is set. -//+-------------------------------------------------------------------------- +// 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), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; version 2.1 of the License. +// See the file LICENSE.LGPL distributed with CGAL. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// 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. +//| According to the standard they have to be functions. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 + +//+-------------------------------------------------------------------------- +//| 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_COMMA_BUG 1 + +//+-------------------------------------------------------------------------- +//| 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_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 +//| CGAL_CFG_LONGNAME_BUG is set. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_LONGNAME_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set, if the compiler does not match function arguments +//| of pointer type correctly, when the return type depends on +//| the parameter's type. (e.g. sun C++ 5.3) +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_MATCHING_BUG_3 1 + +//+-------------------------------------------------------------------------- +//| 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 + +//+-------------------------------------------------------------------------- +//| When template implementation files are not included in the source files, +//| a compiler may attempt to find the unincluded template bodies +//| automatically. For example, suppose that the following conditions are +//| all true. +//| +//| - template entity ABC::f is declared in file xyz.h +//| - an instantiation of ABC::f is required in a compilation +//| - no definition of ABC::f appears in the source code processed by the +//| compilation +//| +//| In this case, the compiler may look to see if the source file xyz.n exists, +//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is +//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 + +//+-------------------------------------------------------------------------- +//| The byte order of a machine architecture distinguishes into +//| big-endian and little-endian machines. +//| The following definition is set if it is a little-endian machine. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_BIG_ENDIAN 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler doesn't support the operator Koenig +//| lookup. That is, it does not search in the namespace of the arguments for +//| the function. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know (g++-2.95) +//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) +//| CGAL_CFG_NO_LIMITS is set. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LIMITS 1 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know the locale classic +//| CGAL_CFG_NO_LOCALE is set. +//+-------------------------------------------------------------------------- +//#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 +//| C standard. +//| The following definition is set if it is supported. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LONG_LONG 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 +//| C library in namespace std. (only tests for the symbols used in CGAL) +//+-------------------------------------------------------------------------- +//#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 +//| dependant on a template in the template parameter list of the class. A +//| workaround would be to implement the member function inline in the class. +//| The following definition is set if this error error occurs. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 + +//+-------------------------------------------------------------------------- +//| Nested templates in template parameter, such as 'template < +//| template class A>' are not supported by any compiler. +//| The following definition is set if they are not supported. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 + +//+-------------------------------------------------------------------------- +//| 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 + +//+-------------------------------------------------------------------------- +//| 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_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 + +//+-------------------------------------------------------------------------- +//| 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_SUNPRO_RWSTD 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 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1). +//| nextafter() is part of ISO C99, but not ISO C++98 (hence instead of ). +//| CGAL_CFG_NO_NEXTAFTER is set. +//+-------------------------------------------------------------------------- #define CGAL_CFG_NO_NEXTAFTER \ No newline at end of file diff --git a/wininst/include/CGAL/config/msvc/CGAL/compiler_config.h b/wininst/include/CGAL/config/msvc/CGAL/compiler_config.h index 12593d3aa2a..ef64621f33d 100644 --- a/wininst/include/CGAL/config/msvc/CGAL/compiler_config.h +++ b/wininst/include/CGAL/config/msvc/CGAL/compiler_config.h @@ -1,42 +1,42 @@ -// Copyright (c) 1997-2002 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), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// 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: svn+ssh://CGAL/svn/cgal/trunk/wininst/include/CGAL/config/msvc7/CGAL/compiler_config.h $ -// $Id: compiler_config.h 31170 2006-05-18 10:01:03Z afabri $ -// -// -// Author(s) : Radu Ursu - - -#ifdef _MSC_VER -# if _MSC_VER < 1310 -# error Unsupported version of VC++ -# else -# ifdef __ICL -# include "CGAL/icl_8_1.h" -# else -# if _MSC_VER == 1310 -# include "CGAL/cl_1310.h" -# else -# include "CGAL/cl_1400.h" -# endif -# endif -# endif - -# define CGAL_LIB_NAME CGAL -# include "CGAL/auto_link.h" -#endif +// Copyright (c) 1997-2002 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), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// 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 + + +#ifdef _MSC_VER +# if _MSC_VER < 1310 +# error Unsupported version of VC++ +# else +# ifdef __ICL +# include "CGAL/icl_8_1.h" +# else +# if _MSC_VER == 1310 +# include "CGAL/cl_1310.h" +# else +# include "CGAL/cl_1400.h" +# endif +# endif +# endif + +# define CGAL_LIB_NAME CGAL +# include "CGAL/auto_link.h" +#endif diff --git a/wininst/include/CGAL/config/msvc/CGAL/icl_8_1.h b/wininst/include/CGAL/config/msvc/CGAL/icl_8_1.h index fc4c5f565d6..b8742884592 100644 --- a/wininst/include/CGAL/config/msvc/CGAL/icl_8_1.h +++ b/wininst/include/CGAL/config/msvc/CGAL/icl_8_1.h @@ -1,279 +1,279 @@ -// 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), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org); you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; version 2.1 of the License. -// See the file LICENSE.LGPL distributed with CGAL. -// -// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Author(s): the install_cgal script - - -//+-------------------------------------------------------------------------- -//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the -//| standard C library functions in cctype (isdigit etc.) as macros. -//| According to the standard they have to be functions. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 - -//+-------------------------------------------------------------------------- -//| 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_COMMA_BUG 1 - -//+-------------------------------------------------------------------------- -//| 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_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 -//| CGAL_CFG_LONGNAME_BUG is set. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_LONGNAME_BUG 1 - -//+-------------------------------------------------------------------------- -//| This flag is set, if the compiler does not match function arguments -//| of pointer type correctly, when the return type depends on -//| the parameter's type. (e.g. sun C++ 5.3) -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_MATCHING_BUG_3 1 - -//+-------------------------------------------------------------------------- -//| 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 - -//+-------------------------------------------------------------------------- -//| When template implementation files are not included in the source files, -//| a compiler may attempt to find the unincluded template bodies -//| automatically. For example, suppose that the following conditions are -//| all true. -//| -//| - template entity ABC::f is declared in file xyz.h -//| - an instantiation of ABC::f is required in a compilation -//| - no definition of ABC::f appears in the source code processed by the -//| compilation -//| -//| In this case, the compiler may look to see if the source file xyz.n exists, -//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is -//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 - -//+-------------------------------------------------------------------------- -//| The byte order of a machine architecture distinguishes into -//| big-endian and little-endian machines. -//| The following definition is set if it is a little-endian machine. -//+-------------------------------------------------------------------------- -#define CGAL_CFG_NO_BIG_ENDIAN 1 - -//+-------------------------------------------------------------------------- -//| This flag is set if the compiler doesn't support the operator Koenig -//| lookup. That is, it does not search in the namespace of the arguments for -//| the function. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know (g++-2.95) -//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) -//| CGAL_CFG_NO_LIMITS is set. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_LIMITS 1 - -//+-------------------------------------------------------------------------- -//| If a compiler doesn't know the locale classic -//| CGAL_CFG_NO_LOCALE is set. -//+-------------------------------------------------------------------------- -//#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 -//| C standard. -//| The following definition is set if it is supported. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_LONG_LONG 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 -//| C library in namespace std. (only tests for the symbols used in CGAL) -//+-------------------------------------------------------------------------- -//#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 -//| dependant on a template in the template parameter list of the class. A -//| workaround would be to implement the member function inline in the class. -//| The following definition is set if this error error occurs. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 - -//+-------------------------------------------------------------------------- -//| Nested templates in template parameter, such as 'template < -//| template class A>' are not supported by any compiler. -//| The following definition is set if they are not supported. -//+-------------------------------------------------------------------------- -//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 - -//+-------------------------------------------------------------------------- -//| 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 - -//+-------------------------------------------------------------------------- -//| 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_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 - -//+-------------------------------------------------------------------------- -//| 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_SUNPRO_RWSTD 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 +// 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), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; version 2.1 of the License. +// See the file LICENSE.LGPL distributed with CGAL. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Author(s): the install_cgal script + + +//+-------------------------------------------------------------------------- +//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the +//| standard C library functions in cctype (isdigit etc.) as macros. +//| According to the standard they have to be functions. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 + +//+-------------------------------------------------------------------------- +//| 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_COMMA_BUG 1 + +//+-------------------------------------------------------------------------- +//| 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_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 +//| CGAL_CFG_LONGNAME_BUG is set. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_LONGNAME_BUG 1 + +//+-------------------------------------------------------------------------- +//| This flag is set, if the compiler does not match function arguments +//| of pointer type correctly, when the return type depends on +//| the parameter's type. (e.g. sun C++ 5.3) +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_MATCHING_BUG_3 1 + +//+-------------------------------------------------------------------------- +//| 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 + +//+-------------------------------------------------------------------------- +//| When template implementation files are not included in the source files, +//| a compiler may attempt to find the unincluded template bodies +//| automatically. For example, suppose that the following conditions are +//| all true. +//| +//| - template entity ABC::f is declared in file xyz.h +//| - an instantiation of ABC::f is required in a compilation +//| - no definition of ABC::f appears in the source code processed by the +//| compilation +//| +//| In this case, the compiler may look to see if the source file xyz.n exists, +//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is +//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 + +//+-------------------------------------------------------------------------- +//| The byte order of a machine architecture distinguishes into +//| big-endian and little-endian machines. +//| The following definition is set if it is a little-endian machine. +//+-------------------------------------------------------------------------- +#define CGAL_CFG_NO_BIG_ENDIAN 1 + +//+-------------------------------------------------------------------------- +//| This flag is set if the compiler doesn't support the operator Koenig +//| lookup. That is, it does not search in the namespace of the arguments for +//| the function. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know (g++-2.95) +//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) +//| CGAL_CFG_NO_LIMITS is set. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LIMITS 1 + +//+-------------------------------------------------------------------------- +//| If a compiler doesn't know the locale classic +//| CGAL_CFG_NO_LOCALE is set. +//+-------------------------------------------------------------------------- +//#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 +//| C standard. +//| The following definition is set if it is supported. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_LONG_LONG 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 +//| C library in namespace std. (only tests for the symbols used in CGAL) +//+-------------------------------------------------------------------------- +//#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 +//| dependant on a template in the template parameter list of the class. A +//| workaround would be to implement the member function inline in the class. +//| The following definition is set if this error error occurs. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 + +//+-------------------------------------------------------------------------- +//| Nested templates in template parameter, such as 'template < +//| template class A>' are not supported by any compiler. +//| The following definition is set if they are not supported. +//+-------------------------------------------------------------------------- +//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 + +//+-------------------------------------------------------------------------- +//| 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 + +//+-------------------------------------------------------------------------- +//| 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_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 + +//+-------------------------------------------------------------------------- +//| 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_SUNPRO_RWSTD 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