C2vcproj fixed to look for master_71.vcproj instead of master_VC71.vcproj.

Missing svn properties added
This commit is contained in:
Fernando Cacciola 2007-02-27 16:50:16 +00:00
parent 33d7078a30
commit 8a3dee2292
10 changed files with 1575 additions and 1583 deletions

8
.gitattributes vendored
View File

@ -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.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 -text svneol=unset#application/postscript
BGL/doc_tex/BGL/fig/ex_bgl.pstex_t -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/cgal_test eol=lf
BGL/test/BGL/data/7_faces_traingle.off -text svneol=unset#application/octet-stream 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 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/S92-TAUCS1 -text
Installation/config/support/S93-TAUCS2 -text Installation/config/support/S93-TAUCS2 -text
Installation/config/support/S96-TAUCS3 -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.eps -text svneol=unset#application/postscript
Interpolation/doc_tex/Interpolation/nn_coords.gif -text svneol=unset#image/gif Interpolation/doc_tex/Interpolation/nn_coords.gif -text svneol=unset#image/gif
Interpolation/doc_tex/Interpolation/nn_coords.ipe -text svneol=unset#application/postscript 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 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/help/index.html svneol=native#text/html
Robustness/demo/Robustness/robustness.vcproj eol=crlf 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/include/CGAL/type_traits.h -text
STL_Extension/test/STL_Extension/test_type_traits.cpp -text STL_Extension/test/STL_Extension/test_type_traits.cpp -text
Scripts/developer_scripts/create_assertions.sh eol=lf 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/cgal_config.bat eol=crlf
wininst/developer_scripts/examples/master_71.vcproj -text wininst/developer_scripts/examples/master_71.vcproj -text
wininst/developer_scripts/examples/master_80.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_71.vcproj -text
wininst/src/CGAL/cgallib_80.vcproj -text wininst/src/CGAL/cgallib_80.vcproj -text
wininst/winutils/make/bcc/leda/demo.bat eol=crlf wininst/winutils/make/bcc/leda/demo.bat eol=crlf

View File

@ -1,164 +1,164 @@
//======================================================================= //=======================================================================
// //
// //
// //
// //
// THIS FILE HAS BEEN MODIFIED FOR CONST-CORRECTNESS // THIS FILE HAS BEEN MODIFIED FOR CONST-CORRECTNESS
// February 2007, Fernando Cacciola (fernando.cacciola@gmail.com) // February 2007, Fernando Cacciola (fernando.cacciola@gmail.com)
// //
// //
// //
// //
// //
// //
//======================================================================= //=======================================================================
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame. // Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
// //
// Distributed under the Boost Software License, Version 1.0. (See // Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at // accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
//======================================================================= //=======================================================================
#ifndef BOOST_GRAPH_MST_KRUSKAL_HPP #ifndef BOOST_GRAPH_MST_KRUSKAL_HPP
#define BOOST_GRAPH_MST_KRUSKAL_HPP #define BOOST_GRAPH_MST_KRUSKAL_HPP
/* /*
*Minimum Spanning Tree *Minimum Spanning Tree
* Kruskal Algorithm * Kruskal Algorithm
* *
*Requirement: *Requirement:
* undirected graph * undirected graph
*/ */
#include <vector> #include <vector>
#include <queue> #include <queue>
#include <functional> #include <functional>
#include <boost/property_map.hpp> #include <boost/property_map.hpp>
#include <boost/graph/graph_concepts.hpp> #include <boost/graph/graph_concepts.hpp>
#include <boost/graph/named_function_params.hpp> #include <boost/graph/named_function_params.hpp>
#include <boost/pending/disjoint_sets.hpp> #include <boost/pending/disjoint_sets.hpp>
#include <boost/pending/indirect_cmp.hpp> #include <boost/pending/indirect_cmp.hpp>
namespace boost { namespace boost {
// Kruskal's algorithm for Minimum Spanning Tree // Kruskal's algorithm for Minimum Spanning Tree
// //
// This is a greedy algorithm to calculate the 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 // for an undirected graph with weighted edges. The output will be a
// set of edges. // set of edges.
// //
namespace detail { namespace detail {
template <class Graph, class OutputIterator, template <class Graph, class OutputIterator,
class Rank, class Parent, class Weight> class Rank, class Parent, class Weight>
void void
kruskal_mst_impl(const Graph& G, kruskal_mst_impl(const Graph& G,
OutputIterator spanning_tree_edges, OutputIterator spanning_tree_edges,
Rank rank, Parent parent, Weight weight) Rank rank, Parent parent, Weight weight)
{ {
typedef typename graph_traits<Graph const>::vertex_descriptor Vertex; typedef typename graph_traits<Graph const>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph const>::edge_descriptor Edge; typedef typename graph_traits<Graph const>::edge_descriptor Edge;
//function_requires<VertexListGraphConcept<Graph> >(); //function_requires<VertexListGraphConcept<Graph> >();
//function_requires<EdgeListGraphConcept<Graph> >(); //function_requires<EdgeListGraphConcept<Graph> >();
//function_requires<OutputIteratorConcept<OutputIterator, Edge> >(); //function_requires<OutputIteratorConcept<OutputIterator, Edge> >();
//function_requires<ReadWritePropertyMapConcept<Rank, Vertex> >(); //function_requires<ReadWritePropertyMapConcept<Rank, Vertex> >();
//function_requires<ReadWritePropertyMapConcept<Parent, Vertex> >(); //function_requires<ReadWritePropertyMapConcept<Parent, Vertex> >();
//function_requires<ReadablePropertyMapConcept<Weight, Edge> >(); //function_requires<ReadablePropertyMapConcept<Weight, Edge> >();
typedef typename property_traits<Weight>::value_type W_value; typedef typename property_traits<Weight>::value_type W_value;
typedef typename property_traits<Rank>::value_type R_value; typedef typename property_traits<Rank>::value_type R_value;
typedef typename property_traits<Parent>::value_type P_value; typedef typename property_traits<Parent>::value_type P_value;
//function_requires<ComparableConcept<W_value> >(); //function_requires<ComparableConcept<W_value> >();
//function_requires<ConvertibleConcept<P_value, Vertex> >(); //function_requires<ConvertibleConcept<P_value, Vertex> >();
//function_requires<IntegerConcept<R_value> >(); //function_requires<IntegerConcept<R_value> >();
disjoint_sets<Rank, Parent> dset(rank, parent); disjoint_sets<Rank, Parent> dset(rank, parent);
typename graph_traits<Graph const>::vertex_iterator ui, uiend; typename graph_traits<Graph const>::vertex_iterator ui, uiend;
for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui) for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui)
dset.make_set(*ui); dset.make_set(*ui);
typedef indirect_cmp<Weight, std::greater<W_value> > weight_greater; typedef indirect_cmp<Weight, std::greater<W_value> > weight_greater;
weight_greater wl(weight); weight_greater wl(weight);
std::priority_queue<Edge, std::vector<Edge>, weight_greater> Q(wl); std::priority_queue<Edge, std::vector<Edge>, weight_greater> Q(wl);
/*push all edge into Q*/ /*push all edge into Q*/
typename graph_traits<Graph const>::edge_iterator ei, eiend; typename graph_traits<Graph const>::edge_iterator ei, eiend;
for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei) for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei)
Q.push(*ei); Q.push(*ei);
while (! Q.empty()) { while (! Q.empty()) {
Edge e = Q.top(); Edge e = Q.top();
Q.pop(); Q.pop();
Vertex u = dset.find_set(source(e, G)); Vertex u = dset.find_set(source(e, G));
Vertex v = dset.find_set(target(e, G)); Vertex v = dset.find_set(target(e, G));
if ( u != v ) { if ( u != v ) {
*spanning_tree_edges++ = e; *spanning_tree_edges++ = e;
dset.link(u, v); dset.link(u, v);
} }
} }
} }
} // namespace detail } // namespace detail
// Named Parameters Variants // Named Parameters Variants
template <class Graph, class OutputIterator> template <class Graph, class OutputIterator>
inline void inline void
kruskal_minimum_spanning_tree(const Graph& g, kruskal_minimum_spanning_tree(const Graph& g,
OutputIterator spanning_tree_edges) OutputIterator spanning_tree_edges)
{ {
typedef typename graph_traits<Graph>::vertices_size_type size_type; typedef typename graph_traits<Graph>::vertices_size_type size_type;
typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t; typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t;
typedef typename property_map<Graph, vertex_index_t>::type index_map_t; typedef typename property_map<Graph, vertex_index_t>::type index_map_t;
typename graph_traits<Graph>::vertices_size_type typename graph_traits<Graph>::vertices_size_type
n = num_vertices(g); n = num_vertices(g);
std::vector<size_type> rank_map(n); std::vector<size_type> rank_map(n);
std::vector<vertex_t> pred_map(n); std::vector<vertex_t> pred_map(n);
detail::kruskal_mst_impl detail::kruskal_mst_impl
(g, spanning_tree_edges, (g, spanning_tree_edges,
make_iterator_property_map(rank_map.begin(), get(vertex_index, g), rank_map[0]), 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]), make_iterator_property_map(pred_map.begin(), get(vertex_index, g), pred_map[0]),
get(edge_weight, g)); get(edge_weight, g));
} }
template <class Graph, class OutputIterator, class P, class T, class R> template <class Graph, class OutputIterator, class P, class T, class R>
inline void inline void
kruskal_minimum_spanning_tree(const Graph& g, kruskal_minimum_spanning_tree(const Graph& g,
OutputIterator spanning_tree_edges, OutputIterator spanning_tree_edges,
const bgl_named_params<P, T, R>& params) const bgl_named_params<P, T, R>& params)
{ {
typedef typename graph_traits<Graph>::vertices_size_type size_type; typedef typename graph_traits<Graph>::vertices_size_type size_type;
typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t; typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t;
typename graph_traits<Graph>::vertices_size_type n; typename graph_traits<Graph>::vertices_size_type n;
n = is_default_param(get_param(params, vertex_rank)) n = is_default_param(get_param(params, vertex_rank))
? num_vertices(g) : 1; ? num_vertices(g) : 1;
std::vector<size_type> rank_map(n); std::vector<size_type> rank_map(n);
n = is_default_param(get_param(params, vertex_predecessor)) n = is_default_param(get_param(params, vertex_predecessor))
? num_vertices(g) : 1; ? num_vertices(g) : 1;
std::vector<vertex_t> pred_map(n); std::vector<vertex_t> pred_map(n);
detail::kruskal_mst_impl detail::kruskal_mst_impl
(g, spanning_tree_edges, (g, spanning_tree_edges,
choose_param choose_param
(get_param(params, vertex_rank), (get_param(params, vertex_rank),
make_iterator_property_map make_iterator_property_map
(rank_map.begin(), (rank_map.begin(),
choose_const_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])), choose_const_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])),
choose_param choose_param
(get_param(params, vertex_predecessor), (get_param(params, vertex_predecessor),
make_iterator_property_map make_iterator_property_map
(pred_map.begin(), (pred_map.begin(),
choose_const_pmap(get_param(params, vertex_index), g, vertex_index), choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
pred_map[0])), pred_map[0])),
choose_const_pmap(get_param(params, edge_weight), g, edge_weight)); choose_const_pmap(get_param(params, edge_weight), g, edge_weight));
} }
} // namespace boost } // namespace boost
#endif // BOOST_GRAPH_MST_KRUSKAL_HPP #endif // BOOST_GRAPH_MST_KRUSKAL_HPP

View File

@ -1,27 +1,27 @@
// Copyright (c) 1997-2007 Utrecht University (The Netherlands), // Copyright (c) 2007 Utrecht University (The Netherlands),
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
// and Tel-Aviv University (Israel). All rights reserved. // and Tel-Aviv University (Israel). All rights reserved.
// //
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or // 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 // 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. // published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL. // See the file LICENSE.LGPL distributed with CGAL.
// //
// Licensees holding a valid commercial license may use this file in // Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software. // accordance with the commercial license agreement provided with the software.
// //
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// //
// $URL: svn+ssh://CGAL/svn/cgal/trunk/Installation/include/CGAL/Sun_fixes.h $ // $URL$
// $Id: Sun_fixes.h 28904 2006-02-28 15:11:51Z glisse $ // $Id$
// //
// //
// Author(s) : Fernando Cacciola (fernando.cacciola@geometryfactory.com) // 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) // 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 // The real file (for MSVC) is in /CGAL/config/msvc/CGAL/auto_link.h
// //

View File

@ -1,152 +1,152 @@
// Copyright (c) 2003 Utrecht University (The Netherlands), // Copyright (c) 2003 Utrecht University (The Netherlands),
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
// and Tel-Aviv University (Israel). All rights reserved. // and Tel-Aviv University (Israel). All rights reserved.
// //
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or // 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 // 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. // published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL. // See the file LICENSE.LGPL distributed with CGAL.
// //
// Licensees holding a valid commercial license may use this file in // Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software. // accordance with the commercial license agreement provided with the software.
// //
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// //
// $URL: svn+ssh://CGAL/svn/cgal/trunk/STL_Extension/include/CGAL/Iterator_transform.h $ // $URL$
// $Id: Iterator_transform.h 28567 2006-02-16 14:30:13Z lsaboret $ // $Id$
// //
// //
// Author(s) : Michael Hoffmann <hoffmann@inf.ethz.ch> // Author(s) : Michael Hoffmann <hoffmann@inf.ethz.ch>
// Lutz Kettner <kettner@mpi-sb.mpg.de> // Lutz Kettner <kettner@mpi-sb.mpg.de>
// Sylvain Pion <Sylvain.Pion@sophia.inria.fr> // Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
// Fernando Cacciola <fernando.cacciola@geometryfactory.com> // Fernando Cacciola <fernando.cacciola@geometryfactory.com>
#ifndef CGAL_ITERATOR_TRANSFORM_H #ifndef CGAL_ITERATOR_TRANSFORM_H
#define CGAL_ITERATOR_TRANSFORM_H 1 #define CGAL_ITERATOR_TRANSFORM_H 1
#include <CGAL/Iterator_project.h> #include <CGAL/Iterator_project.h>
CGAL_BEGIN_NAMESPACE CGAL_BEGIN_NAMESPACE
template < class I, class Fct> template < class I, class Fct>
class Iterator_transform { class Iterator_transform {
protected: protected:
I nt; // The internal iterator. I nt; // The internal iterator.
public: public:
typedef Iterator_transform<I,Fct> Self; typedef Iterator_transform<I,Fct> Self;
typedef I Iterator; // base iterator typedef I Iterator; // base iterator
typedef std::iterator_traits<I> traits; typedef std::iterator_traits<I> traits;
typedef typename traits::difference_type difference_type; typedef typename traits::difference_type difference_type;
typedef typename traits::iterator_category iterator_category; typedef typename traits::iterator_category iterator_category;
typedef typename traits::value_type base_value_type; typedef typename traits::value_type base_value_type;
typedef typename traits::pointer base_pointer; typedef typename traits::pointer base_pointer;
typedef typename traits::reference base_reference; typedef typename traits::reference base_reference;
typedef typename Fct::argument_type argument_type; typedef typename Fct::argument_type argument_type;
typedef typename Fct::result_type value_type; typedef typename Fct::result_type value_type;
// This iterator returns rvalues by design (allowing the conversion function to return new objects) // This iterator returns rvalues by design (allowing the conversion function to return new objects)
typedef value_type reference; typedef value_type reference;
// Use I_TYPE_MATCH_IF to find correct pointer type. // Use I_TYPE_MATCH_IF to find correct pointer type.
typedef I_TYPE_MATCH_IF< base_pointer, const base_value_type *, typedef I_TYPE_MATCH_IF< base_pointer, const base_value_type *,
const value_type *, value_type *> Match2; const value_type *, value_type *> Match2;
typedef typename Match2::Result pointer; typedef typename Match2::Result pointer;
// CREATION // CREATION
// -------- // --------
Iterator_transform() {} Iterator_transform() {}
Iterator_transform( I j) : nt(j) {} Iterator_transform( I j) : nt(j) {}
// make two iterators assignable if the underlying iterators are // make two iterators assignable if the underlying iterators are
template <class I2> template <class I2>
Iterator_transform( const Iterator_transform<I2,Fct>& i2) Iterator_transform( const Iterator_transform<I2,Fct>& i2)
: nt( i2.current_iterator()) {} : nt( i2.current_iterator()) {}
template <class I2> template <class I2>
Self& operator= ( const Iterator_transform<I2,Fct>& i2) { Self& operator= ( const Iterator_transform<I2,Fct>& i2) {
nt = i2.current_iterator(); nt = i2.current_iterator();
return *this; return *this;
} }
// OPERATIONS Forward Category // OPERATIONS Forward Category
// --------------------------- // ---------------------------
Iterator current_iterator() const { return nt;} Iterator current_iterator() const { return nt;}
bool operator==( const Self& i) const { return ( nt == i.nt); } bool operator==( const Self& i) const { return ( nt == i.nt); }
bool operator!=( const Self& i) const { return !(*this == i); } bool operator!=( const Self& i) const { return !(*this == i); }
reference operator* () const reference operator* () const
{ {
Fct fct; Fct fct;
return fct(*nt); return fct(*nt);
} }
Self& operator++() { Self& operator++() {
++nt; ++nt;
return *this; return *this;
} }
Self operator++(int) { Self operator++(int) {
Self tmp = *this; Self tmp = *this;
++*this; ++*this;
return tmp; return tmp;
} }
// OPERATIONS Bidirectional Category // OPERATIONS Bidirectional Category
// --------------------------------- // ---------------------------------
Self& operator--() { Self& operator--() {
--nt; --nt;
return *this; return *this;
} }
Self operator--(int) { Self operator--(int) {
Self tmp = *this; Self tmp = *this;
--*this; --*this;
return tmp; return tmp;
} }
// OPERATIONS Random Access Category // OPERATIONS Random Access Category
// --------------------------------- // ---------------------------------
Self& operator+=( difference_type n) { Self& operator+=( difference_type n) {
nt += n; nt += n;
return *this; return *this;
} }
Self operator+( difference_type n) const { Self operator+( difference_type n) const {
Self tmp = *this; Self tmp = *this;
return tmp += n; return tmp += n;
} }
Self& operator-=( difference_type n) { Self& operator-=( difference_type n) {
return operator+=( -n); return operator+=( -n);
} }
Self operator-( difference_type n) const { Self operator-( difference_type n) const {
Self tmp = *this; Self tmp = *this;
return tmp += -n; return tmp += -n;
} }
difference_type operator-( const Self& i) const { return nt - i.nt; } difference_type operator-( const Self& i) const { return nt - i.nt; }
reference operator[]( difference_type n) const { reference operator[]( difference_type n) const {
Self tmp = *this; Self tmp = *this;
tmp += n; tmp += n;
return tmp.operator*(); return tmp.operator*();
} }
bool operator< ( const Self& i) const { return ( nt < i.nt); } 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 !(i < *this); } bool operator<=( const Self& i) const { return !(i < *this); }
bool operator>=( const Self& i) const { return !(*this < i); } bool operator>=( const Self& i) const { return !(*this < i); }
}; };
template < class Dist, class Fct, class I> template < class Dist, class Fct, class I>
inline inline
Iterator_transform<I,Fct> Iterator_transform<I,Fct>
operator+( Dist n, Iterator_transform<I,Fct> i) { operator+( Dist n, Iterator_transform<I,Fct> i) {
return i += n; return i += n;
} }
CGAL_END_NAMESPACE CGAL_END_NAMESPACE
#endif // CGAL_Iterator_transform_H // #endif // CGAL_Iterator_transform_H //
// EOF // // EOF //

View File

@ -29,10 +29,10 @@ if [ -d $h ]; then
k=`echo $i|sed -e "s/\.$ext//"`; k=`echo $i|sed -e "s/\.$ext//"`;
# Create $jp VC++ 7.1 project file if it doesn't exist # 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 if [[ ! -e $jp ]]; then
echo "Creating $jp" 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/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.exe/$ofn/g" ./text/temp2.txt > ./text/temp3.txt;
sed -e"s/test_msvc71/$k/g" ./text/temp3.txt > ./text/$jp; sed -e"s/test_msvc71/$k/g" ./text/temp3.txt > ./text/$jp;
@ -41,10 +41,10 @@ if [ -d $h ]; then
fi fi
# Create $jp VC++ 8.0 project file if it doesn't exist # 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 if [[ ! -e $jp ]]; then
echo "Creating $jp" 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/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.exe/$ofn/g" ./text/temp2.txt > ./text/temp3.txt;
sed -e"s/test_msvc80/$k/g" ./text/temp3.txt > ./text/$jp; sed -e"s/test_msvc80/$k/g" ./text/temp3.txt > ./text/$jp;

View File

@ -1,331 +1,331 @@
// This header file is a copy of "boost/config/auto_link.hpp" // This header file is a copy of "boost/config/auto_link.hpp"
// but slightly modified to accomodate CGAL libraries. // but slightly modified to accomodate CGAL libraries.
// //
// Modified for CGAL by: // Modified for CGAL by:
// Fernando Cacciola // Fernando Cacciola
// February 2007 // February 2007
// //
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// //
// (C) Copyright John Maddock 2003. // (C) Copyright John Maddock 2003.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
/************************************************************************* /*************************************************************************
USAGE: USAGE:
~~~~~~ ~~~~~~
Before including this header you must define one or more of define the following macros: 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, CGAL_LIB_NAME: Required: A string containing the basename of the library,
for example boost_regex. for example boost_regex.
CGAL_LIB_TOOLSET: Optional: the base name of the toolset. CGAL_LIB_TOOLSET: Optional: the base name of the toolset.
CGAL_LIB_DIAGNOSTIC: Optional: when set the header will print out the name CGAL_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
of the library selected (useful for debugging). of the library selected (useful for debugging).
CGAL_AUTO_LINK_NOMANGLE: Specifies that we should link to CGAL_LIB_NAME.lib, CGAL_AUTO_LINK_NOMANGLE: Specifies that we should link to CGAL_LIB_NAME.lib,
rather than a mangled-name version. 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. 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. 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 Further, this header has no include guards because you can reuse it several times with different
macros (arguments) in order to link different libraries. macros (arguments) in order to link different libraries.
Be sure to include it only once for each target library! Be sure to include it only once for each target library!
Algorithm: Algorithm:
~~~~~~~~~~ ~~~~~~~~~~
Libraries for Borland and Microsoft compilers are automatically Libraries for Borland and Microsoft compilers are automatically
selected here, the name of the lib is selected according to the following selected here, the name of the lib is selected according to the following
formula: formula:
CGAL_LIB_NAME CGAL_LIB_NAME
+ "_" + "_"
+ CGAL_LIB_TOOLSET + CGAL_LIB_TOOLSET
+ CGAL_LIB_THREAD_OPT + CGAL_LIB_THREAD_OPT
+ CGAL_LIB_RT_OPT + CGAL_LIB_RT_OPT
These are defined as: These are defined as:
CGAL_LIB_NAME: The base name of the lib ( for example boost_regex). 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_TOOLSET: The compiler toolset name (vc71, vc80 etc).
CGAL_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. CGAL_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used, CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used,
contains one or more of the following letters after contains one or more of the following letters after
a hiphen: a hiphen:
s static runtime (dynamic if not present). s static runtime (dynamic if not present).
d debug build (release if not present). d debug build (release if not present).
g debug/diagnostic runtime (release if not present). g debug/diagnostic runtime (release if not present).
p STLPort Build. p STLPort Build.
***************************************************************************/ ***************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
# ifndef BOOST_CONFIG_HPP # ifndef BOOST_CONFIG_HPP
# include <boost/config.hpp> # include <boost/config.hpp>
# endif # endif
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) #elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
// //
// C language compatability (no, honestly) // C language compatability (no, honestly)
// //
# define BOOST_MSVC _MSC_VER # define BOOST_MSVC _MSC_VER
# define BOOST_STRINGIZEIZE(X) BOOST_DO_STRINGIZE(X) # define BOOST_STRINGIZEIZE(X) BOOST_DO_STRINGIZE(X)
# define BOOST_DO_STRINGIZE(X) #X # define BOOST_DO_STRINGIZE(X) #X
#endif #endif
// //
// Only include what follows for known and supported compilers: // Only include what follows for known and supported compilers:
// //
#if defined(BOOST_MSVC) \ #if defined(BOOST_MSVC) \
|| defined(__BORLANDC__) \ || defined(__BORLANDC__) \
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
#ifndef CGAL_LIB_NAME #ifndef CGAL_LIB_NAME
# error "Macro CGAL_LIB_NAME not set (internal error)" # error "Macro CGAL_LIB_NAME not set (internal error)"
#endif #endif
// //
// error check: // error check:
// //
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) #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("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") # pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
# error "Incompatible build options" # error "Incompatible build options"
#endif #endif
// //
// select toolset if not defined already: // select toolset if not defined already:
// //
#ifndef CGAL_LIB_TOOLSET #ifndef CGAL_LIB_TOOLSET
#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200) #if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
// vc6: // vc6:
# define CGAL_LIB_TOOLSET "vc6" # define CGAL_LIB_TOOLSET "vc6"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
// vc7: // vc7:
# define CGAL_LIB_TOOLSET "vc7" # define CGAL_LIB_TOOLSET "vc7"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
// vc71: // vc71:
# define CGAL_LIB_TOOLSET "vc71" # define CGAL_LIB_TOOLSET "vc71"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) #elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
// vc80: // vc80:
# define CGAL_LIB_TOOLSET "vc80" # define CGAL_LIB_TOOLSET "vc80"
#elif defined(__BORLANDC__) #elif defined(__BORLANDC__)
// CBuilder 6: // CBuilder 6:
# define CGAL_LIB_TOOLSET "bcb" # define CGAL_LIB_TOOLSET "bcb"
#elif defined(__ICL) #elif defined(__ICL)
// Intel C++, no version number: // Intel C++, no version number:
# define CGAL_LIB_TOOLSET "iw" # define CGAL_LIB_TOOLSET "iw"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) #elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
// Metrowerks CodeWarrior 8.x // Metrowerks CodeWarrior 8.x
# define CGAL_LIB_TOOLSET "cw8" # define CGAL_LIB_TOOLSET "cw8"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) #elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
// Metrowerks CodeWarrior 9.x // Metrowerks CodeWarrior 9.x
# define CGAL_LIB_TOOLSET "cw9" # define CGAL_LIB_TOOLSET "cw9"
#endif #endif
#endif // CGAL_LIB_TOOLSET #endif // CGAL_LIB_TOOLSET
// //
// select thread opt: // select thread opt:
// //
#if defined(_MT) || defined(__MT__) #if defined(_MT) || defined(__MT__)
# define CGAL_LIB_THREAD_OPT "-mt" # define CGAL_LIB_THREAD_OPT "-mt"
#else #else
# define CGAL_LIB_THREAD_OPT # define CGAL_LIB_THREAD_OPT
#endif #endif
#if defined(_MSC_VER) || defined(__MWERKS__) #if defined(_MSC_VER) || defined(__MWERKS__)
# ifdef _DLL # ifdef _DLL
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) # 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)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define CGAL_LIB_RT_OPT "-gdp" # define CGAL_LIB_RT_OPT "-gdp"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define CGAL_LIB_RT_OPT "-gdp" # define CGAL_LIB_RT_OPT "-gdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define CGAL_LIB_RT_OPT "-p" # define CGAL_LIB_RT_OPT "-p"
# endif # endif
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define CGAL_LIB_RT_OPT "-gdpn" # define CGAL_LIB_RT_OPT "-gdpn"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define CGAL_LIB_RT_OPT "-gdpn" # define CGAL_LIB_RT_OPT "-gdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define CGAL_LIB_RT_OPT "-pn" # define CGAL_LIB_RT_OPT "-pn"
# endif # endif
# else # else
# if defined(_DEBUG) # if defined(_DEBUG)
# define CGAL_LIB_RT_OPT "-gd" # define CGAL_LIB_RT_OPT "-gd"
# else # else
# define CGAL_LIB_RT_OPT # define CGAL_LIB_RT_OPT
# endif # endif
# endif # endif
# else # else
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) # 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)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define CGAL_LIB_RT_OPT "-sgdp" # define CGAL_LIB_RT_OPT "-sgdp"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define CGAL_LIB_RT_OPT "-sgdp" # define CGAL_LIB_RT_OPT "-sgdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define CGAL_LIB_RT_OPT "-sp" # define CGAL_LIB_RT_OPT "-sp"
# endif # endif
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define CGAL_LIB_RT_OPT "-sgdpn" # define CGAL_LIB_RT_OPT "-sgdpn"
# elif defined(_DEBUG) # elif defined(_DEBUG)
# define CGAL_LIB_RT_OPT "-sgdpn" # define CGAL_LIB_RT_OPT "-sgdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries" # error "Build options aren't compatible with pre-built libraries"
# else # else
# define CGAL_LIB_RT_OPT "-spn" # define CGAL_LIB_RT_OPT "-spn"
# endif # endif
# else # else
# if defined(_DEBUG) # if defined(_DEBUG)
# define CGAL_LIB_RT_OPT "-sgd" # define CGAL_LIB_RT_OPT "-sgd"
# else # else
# define CGAL_LIB_RT_OPT "-s" # define CGAL_LIB_RT_OPT "-s"
# endif # endif
# endif # endif
# endif # endif
#elif defined(__BORLANDC__) #elif defined(__BORLANDC__)
// //
// figure out whether we want the debug builds or not: // figure out whether we want the debug builds or not:
// //
#if __BORLANDC__ > 0x561 #if __BORLANDC__ > 0x561
#pragma defineonoption CGAL_BORLAND_DEBUG -v #pragma defineonoption CGAL_BORLAND_DEBUG -v
#endif #endif
// //
// sanity check: // sanity check:
// //
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) #if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
#error "Pre-built versions of the CGAL libraries are not provided in STLPort-debug form" #error "Pre-built versions of the CGAL libraries are not provided in STLPort-debug form"
#endif #endif
# ifdef _RTLDLL # ifdef _RTLDLL
# ifdef CGAL_BORLAND_DEBUG # ifdef CGAL_BORLAND_DEBUG
# define CGAL_LIB_RT_OPT "-d" # define CGAL_LIB_RT_OPT "-d"
# else # else
# define CGAL_LIB_RT_OPT # define CGAL_LIB_RT_OPT
# endif # endif
# else # else
# ifdef CGAL_BORLAND_DEBUG # ifdef CGAL_BORLAND_DEBUG
# define CGAL_LIB_RT_OPT "-sd" # define CGAL_LIB_RT_OPT "-sd"
# else # else
# define CGAL_LIB_RT_OPT "-s" # define CGAL_LIB_RT_OPT "-s"
# endif # endif
# endif # endif
#endif #endif
// //
// now include the lib: // now include the lib:
// //
#if defined(CGAL_LIB_NAME) \ #if defined(CGAL_LIB_NAME) \
&& defined(CGAL_LIB_TOOLSET) \ && defined(CGAL_LIB_TOOLSET) \
&& defined(CGAL_LIB_THREAD_OPT) \ && defined(CGAL_LIB_THREAD_OPT) \
&& defined(CGAL_LIB_RT_OPT) \ && defined(CGAL_LIB_RT_OPT) \
#ifndef CGAL_AUTO_LINK_NOMANGLE #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" # define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) "-" CGAL_LIB_TOOLSET CGAL_LIB_THREAD_OPT CGAL_LIB_RT_OPT ".lib"
#else #else
# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) ".lib" # define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) ".lib"
#endif #endif
#ifndef CGAL_AUTO_LINK_NOMANGLE #ifndef CGAL_AUTO_LINK_NOMANGLE
# pragma comment(lib, CGAL_LIB_FULL_NAME ) # pragma comment(lib, CGAL_LIB_FULL_NAME )
# ifdef CGAL_LIB_DIAGNOSTIC # ifdef CGAL_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME ) # pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME )
# endif # endif
#endif #endif
#else #else
# error "some required macros where not defined (internal logic error)." # error "some required macros where not defined (internal logic error)."
#endif #endif
#endif // _MSC_VER || __BORLANDC__ #endif // _MSC_VER || __BORLANDC__
// //
// finally undef any macros we may have set: // finally undef any macros we may have set:
// //
#if defined(CGAL_LIB_NAME) #if defined(CGAL_LIB_NAME)
# undef CGAL_LIB_NAME # undef CGAL_LIB_NAME
#endif #endif
// Don't undef this one: it can be set by the user and should be the // Don't undef this one: it can be set by the user and should be the
// same for all libraries: // same for all libraries:
//#if defined(CGAL_LIB_TOOLSET) //#if defined(CGAL_LIB_TOOLSET)
//# undef CGAL_LIB_TOOLSET //# undef CGAL_LIB_TOOLSET
//#endif //#endif
#if defined(CGAL_LIB_THREAD_OPT) #if defined(CGAL_LIB_THREAD_OPT)
# undef CGAL_LIB_THREAD_OPT # undef CGAL_LIB_THREAD_OPT
#endif #endif
#if defined(CGAL_LIB_RT_OPT) #if defined(CGAL_LIB_RT_OPT)
# undef CGAL_LIB_RT_OPT # undef CGAL_LIB_RT_OPT
#endif #endif
#if defined(CGAL_LIB_LINK_OPT) #if defined(CGAL_LIB_LINK_OPT)
# undef CGAL_LIB_LINK_OPT # undef CGAL_LIB_LINK_OPT
#endif #endif
#if defined(CGAL_AUTO_LINK_NOMANGLE) #if defined(CGAL_AUTO_LINK_NOMANGLE)
# undef CGAL_AUTO_LINK_NOMANGLE # undef CGAL_AUTO_LINK_NOMANGLE
#endif #endif
#if defined(CGAL_LIB_FULL_NAME) #if defined(CGAL_LIB_FULL_NAME)
# undef CGAL_LIB_FULL_NAME # undef CGAL_LIB_FULL_NAME
#endif #endif

View File

@ -1,289 +1,289 @@
// Copyright (c) 1996-2004 Utrecht University (The Netherlands), // Copyright (c) 1996-2004 Utrecht University (The Netherlands),
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
// and Tel-Aviv University (Israel). All rights reserved. // and Tel-Aviv University (Israel). All rights reserved.
// //
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or // 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 // 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. // published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL. // See the file LICENSE.LGPL distributed with CGAL.
// //
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// //
// Author(s): the install_cgal script // Author(s): the install_cgal script
// Compiler specific configuration file for CGAL 3.2-I-437 // Compiler specific configuration file for CGAL 3.2-I-437
// System: i686_CYGWINNT-5.1_CL.EXE-1310 // System: i686_CYGWINNT-5.1_CL.EXE-1310
// generated by install_cgal 30348 // generated by install_cgal 30348
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the //| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
//| standard C library functions in cctype (isdigit etc.) as macros. //| standard C library functions in cctype (isdigit etc.) as macros.
//| According to the standard they have to be functions. //| According to the standard they have to be functions.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 //#define CGAL_CFG_CCTYPE_MACRO_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not properly parse comma separated //| This flag is set, if the compiler does not properly parse comma separated
//| expressions in a base constructor call. (e.g. g++ 3.3). //| expressions in a base constructor call. (e.g. g++ 3.3).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_COMMA_BUG 1 //#define CGAL_CFG_COMMA_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler //| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
//| crashes with some conversion operators. G++ 3.3.0 is affected by //| crashes with some conversion operators. G++ 3.3.0 is affected by
//| this bug (it hits Darwin severely since it is the system compiler). //| this bug (it hits Darwin severely since it is the system compiler).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1 //#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler wants you to remove the word //| This flag is set if the compiler wants you to remove the word
//| template in some complicated dependent types. //| template in some complicated dependent types.
//| Any error with the message "Unexpected type name" is likely to be //| Any error with the message "Unexpected type name" is likely to be
//| related to this bug in sunpro. //| related to this bug in sunpro.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1 //#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs when handling denormal values at //| This flag is set if the compiler bugs when handling denormal values at
//| compile time. At least PGCC 5.1-3 has the bug. //| compile time. At least PGCC 5.1-3 has the bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1 //#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with special features with IEEE 754 //| 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 //| handling, concerning is_valid() and is_finite() testing of infinity and
//| nans. The workaround is to use bitfield operations. //| nans. The workaround is to use bitfield operations.
//| At least VC++, Borland and PGCC have the bug. //| At least VC++, Borland and PGCC have the bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_IEEE_754_BUG 1 //#define CGAL_CFG_IEEE_754_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler (or assembler or linker) has problems with long names //| If a compiler (or assembler or linker) has problems with long names
//| CGAL_CFG_LONGNAME_BUG is set. //| CGAL_CFG_LONGNAME_BUG is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_LONGNAME_BUG 1 #define CGAL_CFG_LONGNAME_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not match function arguments //| This flag is set, if the compiler does not match function arguments
//| of pointer type correctly, when the return type depends on //| of pointer type correctly, when the return type depends on
//| the parameter's type. (e.g. sun C++ 5.3) //| the parameter's type. (e.g. sun C++ 5.3)
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_3 1 //#define CGAL_CFG_MATCHING_BUG_3 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if a compiler cannot distinguish the signature //| This flag is set, if a compiler cannot distinguish the signature
//| of overloaded function templates, which have arguments whose type //| of overloaded function templates, which have arguments whose type
//| depends on the template parameter. //| depends on the template parameter.
//| This bug appears for example on Sunpro 5.3 and 5.4. //| This bug appears for example on Sunpro 5.3 and 5.4.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_4 1 //#define CGAL_CFG_MATCHING_BUG_4 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if a compiler cannot distinguish the signature //| This flag is set, if a compiler cannot distinguish the signature
//| of overloaded function templates, which have one template parameter //| of overloaded function templates, which have one template parameter
//| to be passed explicitely when being called. //| to be passed explicitely when being called.
//| This bug appears for example on g++ 3.3 and 3.4. //| This bug appears for example on g++ 3.3 and 3.4.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_5 1 //#define CGAL_CFG_MATCHING_BUG_5 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| VC 7.3 does not recognize when an operator in a class //| VC 7.3 does not recognize when an operator in a class
//| redefines the operator with the same signature in a base class //| redefines the operator with the same signature in a base class
//| It happens with the regular triangulation. //| It happens with the regular triangulation.
//| No minimal testcase yet //| No minimal testcase yet
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_MATCHING_BUG_6 1 #define CGAL_CFG_MATCHING_BUG_6 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set, //| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
//| if the std::vector class does not have defined template constructors. //| if the std::vector class does not have defined template constructors.
//| This is a feature of SunPro 5.5. //| This is a feature of SunPro 5.5.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1 //#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set //| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
//| if the compiler cannot recognize the declaration of a nested //| if the compiler cannot recognize the declaration of a nested
//| class as friend. //| class as friend.
//| Compilers such as the Intel compiler 8.x (for linux or windows), //| 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++ //| 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 //| 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 //| to as "bug" above, may not really be a bug. Hopefully, the next standard
//| will resolve this issue. //| will resolve this issue.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1 #define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not match a member //| This flag is set, if the compiler does not match a member
//| definition to an existing declaration (eg., cl1310 Beta). //| definition to an existing declaration (eg., cl1310 Beta).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NET2003_MATCHING_BUG 1 #define CGAL_CFG_NET2003_MATCHING_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| When template implementation files are not included in the source files, //| When template implementation files are not included in the source files,
//| a compiler may attempt to find the unincluded template bodies //| a compiler may attempt to find the unincluded template bodies
//| automatically. For example, suppose that the following conditions are //| automatically. For example, suppose that the following conditions are
//| all true. //| all true.
//| //|
//| - template entity ABC::f is declared in file xyz.h //| - template entity ABC::f is declared in file xyz.h
//| - an instantiation of ABC::f is required in a compilation //| - an instantiation of ABC::f is required in a compilation
//| - no definition of ABC::f appears in the source code processed by the //| - no definition of ABC::f appears in the source code processed by the
//| compilation //| compilation
//| //|
//| In this case, the compiler may look to see if the source file xyz.n exists, //| 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 //| 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. //| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 #define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The byte order of a machine architecture distinguishes into //| The byte order of a machine architecture distinguishes into
//| big-endian and little-endian machines. //| big-endian and little-endian machines.
//| The following definition is set if it is a little-endian machine. //| The following definition is set if it is a little-endian machine.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_BIG_ENDIAN 1 #define CGAL_CFG_NO_BIG_ENDIAN 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler doesn't support the operator Koenig //| 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 //| lookup. That is, it does not search in the namespace of the arguments for
//| the function. //| the function.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 //#define CGAL_CFG_NO_KOENIG_LOOKUP 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know <limits> (g++-2.95) //| If a compiler doesn't know <limits> (g++-2.95)
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) //| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
//| CGAL_CFG_NO_LIMITS is set. //| CGAL_CFG_NO_LIMITS is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LIMITS 1 //#define CGAL_CFG_NO_LIMITS 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know the locale classic //| If a compiler doesn't know the locale classic
//| CGAL_CFG_NO_LOCALE is set. //| CGAL_CFG_NO_LOCALE is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LOCALE 1 //#define CGAL_CFG_NO_LOCALE 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| Tests if std::cout supports long double IO. //| Tests if std::cout supports long double IO.
//| pgCC 5.2-2 has this bug (only has for double and float). //| pgCC 5.2-2 has this bug (only has for double and float).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1 //#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The long long built-in integral type is not part of the ISO C++ standard, //| 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 //| but many compilers support it nevertheless since it's part of the ISO
//| C standard. //| C standard.
//| The following definition is set if it is supported. //| The following definition is set if it is supported.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LONG_LONG 1 //#define CGAL_CFG_NO_LONG_LONG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not //| 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 //| put the parts of the standard library inherited from the standard
//| C library in namespace std. (only tests for the symbols used in CGAL) //| C library in namespace std. (only tests for the symbols used in CGAL)
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_STDC_NAMESPACE 1 //#define CGAL_CFG_NO_STDC_NAMESPACE 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| A basic test for the STL. //| A basic test for the STL.
//| If it fails, it probably means a bad CGAL installation. //| If it fails, it probably means a bad CGAL installation.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_STL 1 //#define CGAL_CFG_NO_STL 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| G++ 2.95.2 has problems with member functions implemented outside of //| 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 //| 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 //| 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. //| workaround would be to implement the member function inline in the class.
//| The following definition is set if this error error occurs. //| The following definition is set if this error error occurs.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 //#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| Nested templates in template parameter, such as 'template < //| Nested templates in template parameter, such as 'template <
//| template <class T> class A>' are not supported by any compiler. //| template <class T> class A>' are not supported by any compiler.
//| The following definition is set if they are not supported. //| The following definition is set if they are not supported.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 //#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set, //| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
//| if a compiler does not support the two stage name lookup. //| if a compiler does not support the two stage name lookup.
//| This is a bug of G++ < 3.4 for example. //| This is a bug of G++ < 3.4 for example.
//| Note that the program fails when the feature works, //| Note that the program fails when the feature works,
//| which is different from the other test programs. //| which is different from the other test programs.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1 #define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler complains about an ambiguity between //| 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 type and itself when some members are defined out of line. This is
//| a Sun CC bug. //| a Sun CC bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1 //#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set, //| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
//| if a compiler does not support the definition of member templates //| 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 //| 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. //| definition inside the class. This is a feature of SunPro 5.5.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1 //#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set, //| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
//| if a compiler does not support the definition of member templates //| 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 //| out of line, i.e. outside class scope. The solution is to put the
//| definition inside the class. //| definition inside the class.
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG //| 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 //| is the return type of the member template.SunPro 5.5 should be OK with
//| this code. //| this code.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 //#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 //| This flag is set if the compiler is Sun's compiler and it uses the
//| old Rogue Wave STL. //| old Rogue Wave STL.
//| The workarounds consist in faking iterator_traits and using a wrapper //| The workarounds consist in faking iterator_traits and using a wrapper
//| to reverse_iterator //| to reverse_iterator
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_SUNPRO_RWSTD 1 //#define CGAL_CFG_SUNPRO_RWSTD 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1 #define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler doesn't support "using Base::Member;" in //| This flag is set if the compiler doesn't support "using Base::Member;" in
//| a derived class. The workaround is to write a forwarder. //| a derived class. The workaround is to write a forwarder.
//| At least g++ 2.95 and SunPro CC 5.3 have this bug. //| At least g++ 2.95 and SunPro CC 5.3 have this bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with some "using Base::Member;" in //| 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. //| 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 : //| At least SunPro CC 5.3 has this bug where the typical error message is :
//| "Error: The function B<int>::g() has not had a body defined." //| "Error: The function B<int>::g() has not had a body defined."
//| Note that the subtlely is that the error message does not mention //| Note that the subtlely is that the error message does not mention
//| "Member"... //| "Member"...
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with some "using Base::Member;" in //| 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. //| a derived class, when there is a typedef of the base class.
//| The workaround is to write a forwarder or not use using. //| The workaround is to write a forwarder or not use using.
//| At least MipsPRO CC 7.4 has this bug. //| At least MipsPRO CC 7.4 has this bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.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 <math.h> instead of <cmath>). //| nextafter() is part of ISO C99, but not ISO C++98 (hence <math.h> instead of <cmath>).
//| CGAL_CFG_NO_NEXTAFTER is set. //| CGAL_CFG_NO_NEXTAFTER is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_NEXTAFTER #define CGAL_CFG_NO_NEXTAFTER

View File

@ -1,288 +1,288 @@
// Copyright (c) 1996-2004 Utrecht University (The Netherlands), // Copyright (c) 1996-2004 Utrecht University (The Netherlands),
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
// and Tel-Aviv University (Israel). All rights reserved. // and Tel-Aviv University (Israel). All rights reserved.
// //
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or // 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 // 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. // published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL. // See the file LICENSE.LGPL distributed with CGAL.
// //
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// //
// Author(s): the install_cgal script // Author(s): the install_cgal script
// Compiler specific configuration file for CGAL 3.2-I-437 // Compiler specific configuration file for CGAL 3.2-I-437
// System: i686_CYGWINNT-5.1_CL.EXE-1310 // System: i686_CYGWINNT-5.1_CL.EXE-1310
// generated by install_cgal 30348 // generated by install_cgal 30348
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the //| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
//| standard C library functions in cctype (isdigit etc.) as macros. //| standard C library functions in cctype (isdigit etc.) as macros.
//| According to the standard they have to be functions. //| According to the standard they have to be functions.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 //#define CGAL_CFG_CCTYPE_MACRO_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not properly parse comma separated //| This flag is set, if the compiler does not properly parse comma separated
//| expressions in a base constructor call. (e.g. g++ 3.3). //| expressions in a base constructor call. (e.g. g++ 3.3).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_COMMA_BUG 1 //#define CGAL_CFG_COMMA_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler //| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
//| crashes with some conversion operators. G++ 3.3.0 is affected by //| crashes with some conversion operators. G++ 3.3.0 is affected by
//| this bug (it hits Darwin severely since it is the system compiler). //| this bug (it hits Darwin severely since it is the system compiler).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1 //#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler wants you to remove the word //| This flag is set if the compiler wants you to remove the word
//| template in some complicated dependent types. //| template in some complicated dependent types.
//| Any error with the message "Unexpected type name" is likely to be //| Any error with the message "Unexpected type name" is likely to be
//| related to this bug in sunpro. //| related to this bug in sunpro.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1 //#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs when handling denormal values at //| This flag is set if the compiler bugs when handling denormal values at
//| compile time. At least PGCC 5.1-3 has the bug. //| compile time. At least PGCC 5.1-3 has the bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1 //#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with special features with IEEE 754 //| 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 //| handling, concerning is_valid() and is_finite() testing of infinity and
//| nans. The workaround is to use bitfield operations. //| nans. The workaround is to use bitfield operations.
//| At least VC++, Borland and PGCC have the bug. //| At least VC++, Borland and PGCC have the bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_IEEE_754_BUG 1 //#define CGAL_CFG_IEEE_754_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler (or assembler or linker) has problems with long names //| If a compiler (or assembler or linker) has problems with long names
//| CGAL_CFG_LONGNAME_BUG is set. //| CGAL_CFG_LONGNAME_BUG is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_LONGNAME_BUG 1 #define CGAL_CFG_LONGNAME_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not match function arguments //| This flag is set, if the compiler does not match function arguments
//| of pointer type correctly, when the return type depends on //| of pointer type correctly, when the return type depends on
//| the parameter's type. (e.g. sun C++ 5.3) //| the parameter's type. (e.g. sun C++ 5.3)
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_3 1 //#define CGAL_CFG_MATCHING_BUG_3 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if a compiler cannot distinguish the signature //| This flag is set, if a compiler cannot distinguish the signature
//| of overloaded function templates, which have arguments whose type //| of overloaded function templates, which have arguments whose type
//| depends on the template parameter. //| depends on the template parameter.
//| This bug appears for example on Sunpro 5.3 and 5.4. //| This bug appears for example on Sunpro 5.3 and 5.4.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_4 1 //#define CGAL_CFG_MATCHING_BUG_4 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if a compiler cannot distinguish the signature //| This flag is set, if a compiler cannot distinguish the signature
//| of overloaded function templates, which have one template parameter //| of overloaded function templates, which have one template parameter
//| to be passed explicitely when being called. //| to be passed explicitely when being called.
//| This bug appears for example on g++ 3.3 and 3.4. //| This bug appears for example on g++ 3.3 and 3.4.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_5 1 //#define CGAL_CFG_MATCHING_BUG_5 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| VC 7.3 does not recognize when an operator in a class //| VC 7.3 does not recognize when an operator in a class
//| redefines the operator with the same signature in a base class //| redefines the operator with the same signature in a base class
//| It happens with the regular triangulation. //| It happens with the regular triangulation.
//| No minimal testcase yet //| No minimal testcase yet
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_MATCHING_BUG_6 1 #define CGAL_CFG_MATCHING_BUG_6 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set, //| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
//| if the std::vector class does not have defined template constructors. //| if the std::vector class does not have defined template constructors.
//| This is a feature of SunPro 5.5. //| This is a feature of SunPro 5.5.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1 //#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set //| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
//| if the compiler cannot recognize the declaration of a nested //| if the compiler cannot recognize the declaration of a nested
//| class as friend. //| class as friend.
//| Compilers such as the Intel compiler 8.x (for linux or windows), //| 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++ //| 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 //| 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 //| to as "bug" above, may not really be a bug. Hopefully, the next standard
//| will resolve this issue. //| will resolve this issue.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1 #define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not match a member //| This flag is set, if the compiler does not match a member
//| definition to an existing declaration (eg., cl1310 Beta). //| definition to an existing declaration (eg., cl1310 Beta).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NET2003_MATCHING_BUG 1 #define CGAL_CFG_NET2003_MATCHING_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| When template implementation files are not included in the source files, //| When template implementation files are not included in the source files,
//| a compiler may attempt to find the unincluded template bodies //| a compiler may attempt to find the unincluded template bodies
//| automatically. For example, suppose that the following conditions are //| automatically. For example, suppose that the following conditions are
//| all true. //| all true.
//| //|
//| - template entity ABC::f is declared in file xyz.h //| - template entity ABC::f is declared in file xyz.h
//| - an instantiation of ABC::f is required in a compilation //| - an instantiation of ABC::f is required in a compilation
//| - no definition of ABC::f appears in the source code processed by the //| - no definition of ABC::f appears in the source code processed by the
//| compilation //| compilation
//| //|
//| In this case, the compiler may look to see if the source file xyz.n exists, //| 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 //| 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. //| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 #define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The byte order of a machine architecture distinguishes into //| The byte order of a machine architecture distinguishes into
//| big-endian and little-endian machines. //| big-endian and little-endian machines.
//| The following definition is set if it is a little-endian machine. //| The following definition is set if it is a little-endian machine.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_BIG_ENDIAN 1 #define CGAL_CFG_NO_BIG_ENDIAN 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler doesn't support the operator Koenig //| 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 //| lookup. That is, it does not search in the namespace of the arguments for
//| the function. //| the function.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 //#define CGAL_CFG_NO_KOENIG_LOOKUP 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know <limits> (g++-2.95) //| If a compiler doesn't know <limits> (g++-2.95)
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) //| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
//| CGAL_CFG_NO_LIMITS is set. //| CGAL_CFG_NO_LIMITS is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LIMITS 1 //#define CGAL_CFG_NO_LIMITS 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know the locale classic //| If a compiler doesn't know the locale classic
//| CGAL_CFG_NO_LOCALE is set. //| CGAL_CFG_NO_LOCALE is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LOCALE 1 //#define CGAL_CFG_NO_LOCALE 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| Tests if std::cout supports long double IO. //| Tests if std::cout supports long double IO.
//| pgCC 5.2-2 has this bug (only has for double and float). //| pgCC 5.2-2 has this bug (only has for double and float).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1 //#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The long long built-in integral type is not part of the ISO C++ standard, //| 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 //| but many compilers support it nevertheless since it's part of the ISO
//| C standard. //| C standard.
//| The following definition is set if it is supported. //| The following definition is set if it is supported.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LONG_LONG 1 //#define CGAL_CFG_NO_LONG_LONG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not //| 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 //| put the parts of the standard library inherited from the standard
//| C library in namespace std. (only tests for the symbols used in CGAL) //| C library in namespace std. (only tests for the symbols used in CGAL)
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_STDC_NAMESPACE 1 //#define CGAL_CFG_NO_STDC_NAMESPACE 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| A basic test for the STL. //| A basic test for the STL.
//| If it fails, it probably means a bad CGAL installation. //| If it fails, it probably means a bad CGAL installation.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_STL 1 //#define CGAL_CFG_NO_STL 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| G++ 2.95.2 has problems with member functions implemented outside of //| 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 //| 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 //| 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. //| workaround would be to implement the member function inline in the class.
//| The following definition is set if this error error occurs. //| The following definition is set if this error error occurs.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 //#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| Nested templates in template parameter, such as 'template < //| Nested templates in template parameter, such as 'template <
//| template <class T> class A>' are not supported by any compiler. //| template <class T> class A>' are not supported by any compiler.
//| The following definition is set if they are not supported. //| The following definition is set if they are not supported.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 //#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set, //| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
//| if a compiler does not support the two stage name lookup. //| if a compiler does not support the two stage name lookup.
//| This is a bug of G++ < 3.4 for example. //| This is a bug of G++ < 3.4 for example.
//| Note that the program fails when the feature works, //| Note that the program fails when the feature works,
//| which is different from the other test programs. //| which is different from the other test programs.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1 #define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler complains about an ambiguity between //| 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 type and itself when some members are defined out of line. This is
//| a Sun CC bug. //| a Sun CC bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1 //#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set, //| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
//| if a compiler does not support the definition of member templates //| 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 //| 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. //| definition inside the class. This is a feature of SunPro 5.5.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1 //#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set, //| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
//| if a compiler does not support the definition of member templates //| 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 //| out of line, i.e. outside class scope. The solution is to put the
//| definition inside the class. //| definition inside the class.
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG //| 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 //| is the return type of the member template.SunPro 5.5 should be OK with
//| this code. //| this code.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 //#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 //| This flag is set if the compiler is Sun's compiler and it uses the
//| old Rogue Wave STL. //| old Rogue Wave STL.
//| The workarounds consist in faking iterator_traits and using a wrapper //| The workarounds consist in faking iterator_traits and using a wrapper
//| to reverse_iterator //| to reverse_iterator
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_SUNPRO_RWSTD 1 //#define CGAL_CFG_SUNPRO_RWSTD 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1 #define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler doesn't support "using Base::Member;" in //| This flag is set if the compiler doesn't support "using Base::Member;" in
//| a derived class. The workaround is to write a forwarder. //| a derived class. The workaround is to write a forwarder.
//| At least g++ 2.95 and SunPro CC 5.3 have this bug. //| At least g++ 2.95 and SunPro CC 5.3 have this bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with some "using Base::Member;" in //| 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. //| 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 : //| At least SunPro CC 5.3 has this bug where the typical error message is :
//| "Error: The function B<int>::g() has not had a body defined." //| "Error: The function B<int>::g() has not had a body defined."
//| Note that the subtlely is that the error message does not mention //| Note that the subtlely is that the error message does not mention
//| "Member"... //| "Member"...
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with some "using Base::Member;" in //| 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. //| a derived class, when there is a typedef of the base class.
//| The workaround is to write a forwarder or not use using. //| The workaround is to write a forwarder or not use using.
//| At least MipsPRO CC 7.4 has this bug. //| At least MipsPRO CC 7.4 has this bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.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 <math.h> instead of <cmath>). //| nextafter() is part of ISO C99, but not ISO C++98 (hence <math.h> instead of <cmath>).
//| CGAL_CFG_NO_NEXTAFTER is set. //| CGAL_CFG_NO_NEXTAFTER is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_NEXTAFTER #define CGAL_CFG_NO_NEXTAFTER

View File

@ -1,42 +1,42 @@
// Copyright (c) 1997-2002 Utrecht University (The Netherlands), // Copyright (c) 1997-2002 Utrecht University (The Netherlands),
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
// and Tel-Aviv University (Israel). All rights reserved. // and Tel-Aviv University (Israel). All rights reserved.
// //
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or // 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 // 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. // published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL. // See the file LICENSE.LGPL distributed with CGAL.
// //
// Licensees holding a valid commercial license may use this file in // Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software. // accordance with the commercial license agreement provided with the software.
// //
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // 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 $ // $URL$
// $Id: compiler_config.h 31170 2006-05-18 10:01:03Z afabri $ // $Id$
// //
// //
// Author(s) : Radu Ursu // Author(s) : Radu Ursu
#ifdef _MSC_VER #ifdef _MSC_VER
# if _MSC_VER < 1310 # if _MSC_VER < 1310
# error Unsupported version of VC++ # error Unsupported version of VC++
# else # else
# ifdef __ICL # ifdef __ICL
# include "CGAL/icl_8_1.h" # include "CGAL/icl_8_1.h"
# else # else
# if _MSC_VER == 1310 # if _MSC_VER == 1310
# include "CGAL/cl_1310.h" # include "CGAL/cl_1310.h"
# else # else
# include "CGAL/cl_1400.h" # include "CGAL/cl_1400.h"
# endif # endif
# endif # endif
# endif # endif
# define CGAL_LIB_NAME CGAL # define CGAL_LIB_NAME CGAL
# include "CGAL/auto_link.h" # include "CGAL/auto_link.h"
#endif #endif

View File

@ -1,279 +1,279 @@
// Copyright (c) 1996-2004 Utrecht University (The Netherlands), // Copyright (c) 1996-2004 Utrecht University (The Netherlands),
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
// and Tel-Aviv University (Israel). All rights reserved. // and Tel-Aviv University (Israel). All rights reserved.
// //
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or // 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 // 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. // published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL. // See the file LICENSE.LGPL distributed with CGAL.
// //
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// //
// Author(s): the install_cgal script // Author(s): the install_cgal script
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the //| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
//| standard C library functions in cctype (isdigit etc.) as macros. //| standard C library functions in cctype (isdigit etc.) as macros.
//| According to the standard they have to be functions. //| According to the standard they have to be functions.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1 //#define CGAL_CFG_CCTYPE_MACRO_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not properly parse comma separated //| This flag is set, if the compiler does not properly parse comma separated
//| expressions in a base constructor call. (e.g. g++ 3.3). //| expressions in a base constructor call. (e.g. g++ 3.3).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_COMMA_BUG 1 //#define CGAL_CFG_COMMA_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler //| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
//| crashes with some conversion operators. G++ 3.3.0 is affected by //| crashes with some conversion operators. G++ 3.3.0 is affected by
//| this bug (it hits Darwin severely since it is the system compiler). //| this bug (it hits Darwin severely since it is the system compiler).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1 //#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler wants you to remove the word //| This flag is set if the compiler wants you to remove the word
//| template in some complicated dependent types. //| template in some complicated dependent types.
//| Any error with the message "Unexpected type name" is likely to be //| Any error with the message "Unexpected type name" is likely to be
//| related to this bug in sunpro. //| related to this bug in sunpro.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1 //#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs when handling denormal values at //| This flag is set if the compiler bugs when handling denormal values at
//| compile time. At least PGCC 5.1-3 has the bug. //| compile time. At least PGCC 5.1-3 has the bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1 //#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with special features with IEEE 754 //| 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 //| handling, concerning is_valid() and is_finite() testing of infinity and
//| nans. The workaround is to use bitfield operations. //| nans. The workaround is to use bitfield operations.
//| At least VC++, Borland and PGCC have the bug. //| At least VC++, Borland and PGCC have the bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_IEEE_754_BUG 1 //#define CGAL_CFG_IEEE_754_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler (or assembler or linker) has problems with long names //| If a compiler (or assembler or linker) has problems with long names
//| CGAL_CFG_LONGNAME_BUG is set. //| CGAL_CFG_LONGNAME_BUG is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_LONGNAME_BUG 1 //#define CGAL_CFG_LONGNAME_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not match function arguments //| This flag is set, if the compiler does not match function arguments
//| of pointer type correctly, when the return type depends on //| of pointer type correctly, when the return type depends on
//| the parameter's type. (e.g. sun C++ 5.3) //| the parameter's type. (e.g. sun C++ 5.3)
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_3 1 //#define CGAL_CFG_MATCHING_BUG_3 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if a compiler cannot distinguish the signature //| This flag is set, if a compiler cannot distinguish the signature
//| of overloaded function templates, which have arguments whose type //| of overloaded function templates, which have arguments whose type
//| depends on the template parameter. //| depends on the template parameter.
//| This bug appears for example on Sunpro 5.3 and 5.4. //| This bug appears for example on Sunpro 5.3 and 5.4.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_4 1 //#define CGAL_CFG_MATCHING_BUG_4 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if a compiler cannot distinguish the signature //| This flag is set, if a compiler cannot distinguish the signature
//| of overloaded function templates, which have one template parameter //| of overloaded function templates, which have one template parameter
//| to be passed explicitely when being called. //| to be passed explicitely when being called.
//| This bug appears for example on g++ 3.3 and 3.4. //| This bug appears for example on g++ 3.3 and 3.4.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_MATCHING_BUG_5 1 #define CGAL_CFG_MATCHING_BUG_5 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| VC 7.3 does not recognize when an operator in a class //| VC 7.3 does not recognize when an operator in a class
//| redefines the operator with the same signature in a base class //| redefines the operator with the same signature in a base class
//| It happens with the regular triangulation. //| It happens with the regular triangulation.
//| No minimal testcase yet //| No minimal testcase yet
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MATCHING_BUG_6 1 //#define CGAL_CFG_MATCHING_BUG_6 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set, //| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
//| if the std::vector class does not have defined template constructors. //| if the std::vector class does not have defined template constructors.
//| This is a feature of SunPro 5.5. //| This is a feature of SunPro 5.5.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1 //#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set //| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
//| if the compiler cannot recognize the declaration of a nested //| if the compiler cannot recognize the declaration of a nested
//| class as friend. //| class as friend.
//| Compilers such as the Intel compiler 8.x (for linux or windows), //| 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++ //| 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 //| 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 //| to as "bug" above, may not really be a bug. Hopefully, the next standard
//| will resolve this issue. //| will resolve this issue.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1 #define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set, if the compiler does not match a member //| This flag is set, if the compiler does not match a member
//| definition to an existing declaration (eg., cl1310 Beta). //| definition to an existing declaration (eg., cl1310 Beta).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NET2003_MATCHING_BUG 1 //#define CGAL_CFG_NET2003_MATCHING_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| When template implementation files are not included in the source files, //| When template implementation files are not included in the source files,
//| a compiler may attempt to find the unincluded template bodies //| a compiler may attempt to find the unincluded template bodies
//| automatically. For example, suppose that the following conditions are //| automatically. For example, suppose that the following conditions are
//| all true. //| all true.
//| //|
//| - template entity ABC::f is declared in file xyz.h //| - template entity ABC::f is declared in file xyz.h
//| - an instantiation of ABC::f is required in a compilation //| - an instantiation of ABC::f is required in a compilation
//| - no definition of ABC::f appears in the source code processed by the //| - no definition of ABC::f appears in the source code processed by the
//| compilation //| compilation
//| //|
//| In this case, the compiler may look to see if the source file xyz.n exists, //| 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 //| 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. //| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1 #define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The byte order of a machine architecture distinguishes into //| The byte order of a machine architecture distinguishes into
//| big-endian and little-endian machines. //| big-endian and little-endian machines.
//| The following definition is set if it is a little-endian machine. //| The following definition is set if it is a little-endian machine.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_BIG_ENDIAN 1 #define CGAL_CFG_NO_BIG_ENDIAN 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler doesn't support the operator Koenig //| 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 //| lookup. That is, it does not search in the namespace of the arguments for
//| the function. //| the function.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1 //#define CGAL_CFG_NO_KOENIG_LOOKUP 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know <limits> (g++-2.95) //| If a compiler doesn't know <limits> (g++-2.95)
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC) //| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
//| CGAL_CFG_NO_LIMITS is set. //| CGAL_CFG_NO_LIMITS is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LIMITS 1 //#define CGAL_CFG_NO_LIMITS 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| If a compiler doesn't know the locale classic //| If a compiler doesn't know the locale classic
//| CGAL_CFG_NO_LOCALE is set. //| CGAL_CFG_NO_LOCALE is set.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LOCALE 1 //#define CGAL_CFG_NO_LOCALE 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| Tests if std::cout supports long double IO. //| Tests if std::cout supports long double IO.
//| pgCC 5.2-2 has this bug (only has for double and float). //| pgCC 5.2-2 has this bug (only has for double and float).
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1 //#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The long long built-in integral type is not part of the ISO C++ standard, //| 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 //| but many compilers support it nevertheless since it's part of the ISO
//| C standard. //| C standard.
//| The following definition is set if it is supported. //| The following definition is set if it is supported.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_LONG_LONG 1 //#define CGAL_CFG_NO_LONG_LONG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not //| 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 //| put the parts of the standard library inherited from the standard
//| C library in namespace std. (only tests for the symbols used in CGAL) //| C library in namespace std. (only tests for the symbols used in CGAL)
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_STDC_NAMESPACE 1 //#define CGAL_CFG_NO_STDC_NAMESPACE 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| A basic test for the STL. //| A basic test for the STL.
//| If it fails, it probably means a bad CGAL installation. //| If it fails, it probably means a bad CGAL installation.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_STL 1 //#define CGAL_CFG_NO_STL 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| G++ 2.95.2 has problems with member functions implemented outside of //| 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 //| 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 //| 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. //| workaround would be to implement the member function inline in the class.
//| The following definition is set if this error error occurs. //| The following definition is set if this error error occurs.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1 //#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| Nested templates in template parameter, such as 'template < //| Nested templates in template parameter, such as 'template <
//| template <class T> class A>' are not supported by any compiler. //| template <class T> class A>' are not supported by any compiler.
//| The following definition is set if they are not supported. //| The following definition is set if they are not supported.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1 //#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set, //| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
//| if a compiler does not support the two stage name lookup. //| if a compiler does not support the two stage name lookup.
//| This is a bug of G++ < 3.4 for example. //| This is a bug of G++ < 3.4 for example.
//| Note that the program fails when the feature works, //| Note that the program fails when the feature works,
//| which is different from the other test programs. //| which is different from the other test programs.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1 #define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler complains about an ambiguity between //| 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 type and itself when some members are defined out of line. This is
//| a Sun CC bug. //| a Sun CC bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1 //#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set, //| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
//| if a compiler does not support the definition of member templates //| 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 //| 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. //| definition inside the class. This is a feature of SunPro 5.5.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1 //#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set, //| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
//| if a compiler does not support the definition of member templates //| 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 //| out of line, i.e. outside class scope. The solution is to put the
//| definition inside the class. //| definition inside the class.
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG //| 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 //| is the return type of the member template.SunPro 5.5 should be OK with
//| this code. //| this code.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1 //#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 //| This flag is set if the compiler is Sun's compiler and it uses the
//| old Rogue Wave STL. //| old Rogue Wave STL.
//| The workarounds consist in faking iterator_traits and using a wrapper //| The workarounds consist in faking iterator_traits and using a wrapper
//| to reverse_iterator //| to reverse_iterator
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_SUNPRO_RWSTD 1 //#define CGAL_CFG_SUNPRO_RWSTD 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1 //#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler doesn't support "using Base::Member;" in //| This flag is set if the compiler doesn't support "using Base::Member;" in
//| a derived class. The workaround is to write a forwarder. //| a derived class. The workaround is to write a forwarder.
//| At least g++ 2.95 and SunPro CC 5.3 have this bug. //| At least g++ 2.95 and SunPro CC 5.3 have this bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with some "using Base::Member;" in //| 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. //| 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 : //| At least SunPro CC 5.3 has this bug where the typical error message is :
//| "Error: The function B<int>::g() has not had a body defined." //| "Error: The function B<int>::g() has not had a body defined."
//| Note that the subtlely is that the error message does not mention //| Note that the subtlely is that the error message does not mention
//| "Member"... //| "Member"...
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//| This flag is set if the compiler bugs with some "using Base::Member;" in //| 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. //| a derived class, when there is a typedef of the base class.
//| The workaround is to write a forwarder or not use using. //| The workaround is to write a forwarder or not use using.
//| At least MipsPRO CC 7.4 has this bug. //| At least MipsPRO CC 7.4 has this bug.
//+-------------------------------------------------------------------------- //+--------------------------------------------------------------------------
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1 //#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1