mirror of https://github.com/CGAL/cgal
C2vcproj fixed to look for master_71.vcproj instead of master_VC71.vcproj.
Missing svn properties added
This commit is contained in:
parent
33d7078a30
commit
8a3dee2292
|
|
@ -336,7 +336,6 @@ BGL/doc_tex/BGL/fig/ex_bgl.gif -text svneol=unset#image/gif
|
|||
BGL/doc_tex/BGL/fig/ex_bgl.pdf -text svneol=unset#application/pdf
|
||||
BGL/doc_tex/BGL/fig/ex_bgl.pstex -text svneol=unset#application/postscript
|
||||
BGL/doc_tex/BGL/fig/ex_bgl.pstex_t -text svneol=unset#application/postscript
|
||||
BGL/examples/BGL_polyhedron_3/kruskal_min_spanning_tree.hpp -text
|
||||
BGL/test/BGL/cgal_test eol=lf
|
||||
BGL/test/BGL/data/7_faces_traingle.off -text svneol=unset#application/octet-stream
|
||||
BGL/test/BGL/data/genus3.off -text svneol=unset#application/octet-stream
|
||||
|
|
@ -677,7 +676,6 @@ Installation/config/support/S91-TAUCSWIN -text
|
|||
Installation/config/support/S92-TAUCS1 -text
|
||||
Installation/config/support/S93-TAUCS2 -text
|
||||
Installation/config/support/S96-TAUCS3 -text
|
||||
Installation/include/CGAL/auto_link.h -text
|
||||
Interpolation/doc_tex/Interpolation/nn_coords.eps -text svneol=unset#application/postscript
|
||||
Interpolation/doc_tex/Interpolation/nn_coords.gif -text svneol=unset#image/gif
|
||||
Interpolation/doc_tex/Interpolation/nn_coords.ipe -text svneol=unset#application/postscript
|
||||
|
|
@ -1819,7 +1817,6 @@ Ridges_3/examples/Ridges_3/data/poly2x^2+y^2-0.062500.off -text svneol=unset#app
|
|||
Ridges_3/test/Ridges_3/data/ellipsoid.off -text svneol=unset#application/octet-stream
|
||||
Robustness/demo/Robustness/help/index.html svneol=native#text/html
|
||||
Robustness/demo/Robustness/robustness.vcproj eol=crlf
|
||||
STL_Extension/include/CGAL/Iterator_transform.h -text
|
||||
STL_Extension/include/CGAL/type_traits.h -text
|
||||
STL_Extension/test/STL_Extension/test_type_traits.cpp -text
|
||||
Scripts/developer_scripts/create_assertions.sh eol=lf
|
||||
|
|
@ -2575,11 +2572,6 @@ window/test/WindowStream/test_window_stream_xy_3.cmd eol=lf
|
|||
wininst/cgal_config.bat eol=crlf
|
||||
wininst/developer_scripts/examples/master_71.vcproj -text
|
||||
wininst/developer_scripts/examples/master_80.vcproj -text
|
||||
wininst/include/CGAL/config/msvc/CGAL/auto_link.h -text
|
||||
wininst/include/CGAL/config/msvc/CGAL/cl_1310.h -text
|
||||
wininst/include/CGAL/config/msvc/CGAL/cl_1400.h -text
|
||||
wininst/include/CGAL/config/msvc/CGAL/compiler_config.h -text
|
||||
wininst/include/CGAL/config/msvc/CGAL/icl_8_1.h -text
|
||||
wininst/src/CGAL/cgallib_71.vcproj -text
|
||||
wininst/src/CGAL/cgallib_80.vcproj -text
|
||||
wininst/winutils/make/bcc/leda/demo.bat eol=crlf
|
||||
|
|
|
|||
|
|
@ -1,164 +1,164 @@
|
|||
//=======================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// THIS FILE HAS BEEN MODIFIED FOR CONST-CORRECTNESS
|
||||
// February 2007, Fernando Cacciola (fernando.cacciola@gmail.com)
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//=======================================================================
|
||||
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
|
||||
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//=======================================================================
|
||||
#ifndef BOOST_GRAPH_MST_KRUSKAL_HPP
|
||||
#define BOOST_GRAPH_MST_KRUSKAL_HPP
|
||||
|
||||
/*
|
||||
*Minimum Spanning Tree
|
||||
* Kruskal Algorithm
|
||||
*
|
||||
*Requirement:
|
||||
* undirected graph
|
||||
*/
|
||||
|
||||
#include <vector>
|
||||
#include <queue>
|
||||
#include <functional>
|
||||
|
||||
#include <boost/property_map.hpp>
|
||||
#include <boost/graph/graph_concepts.hpp>
|
||||
#include <boost/graph/named_function_params.hpp>
|
||||
#include <boost/pending/disjoint_sets.hpp>
|
||||
#include <boost/pending/indirect_cmp.hpp>
|
||||
|
||||
|
||||
namespace boost {
|
||||
|
||||
// Kruskal's algorithm for Minimum Spanning Tree
|
||||
//
|
||||
// This is a greedy algorithm to calculate the Minimum Spanning Tree
|
||||
// for an undirected graph with weighted edges. The output will be a
|
||||
// set of edges.
|
||||
//
|
||||
|
||||
namespace detail {
|
||||
|
||||
template <class Graph, class OutputIterator,
|
||||
class Rank, class Parent, class Weight>
|
||||
void
|
||||
kruskal_mst_impl(const Graph& G,
|
||||
OutputIterator spanning_tree_edges,
|
||||
Rank rank, Parent parent, Weight weight)
|
||||
{
|
||||
typedef typename graph_traits<Graph const>::vertex_descriptor Vertex;
|
||||
typedef typename graph_traits<Graph const>::edge_descriptor Edge;
|
||||
//function_requires<VertexListGraphConcept<Graph> >();
|
||||
//function_requires<EdgeListGraphConcept<Graph> >();
|
||||
//function_requires<OutputIteratorConcept<OutputIterator, Edge> >();
|
||||
//function_requires<ReadWritePropertyMapConcept<Rank, Vertex> >();
|
||||
//function_requires<ReadWritePropertyMapConcept<Parent, Vertex> >();
|
||||
//function_requires<ReadablePropertyMapConcept<Weight, Edge> >();
|
||||
typedef typename property_traits<Weight>::value_type W_value;
|
||||
typedef typename property_traits<Rank>::value_type R_value;
|
||||
typedef typename property_traits<Parent>::value_type P_value;
|
||||
//function_requires<ComparableConcept<W_value> >();
|
||||
//function_requires<ConvertibleConcept<P_value, Vertex> >();
|
||||
//function_requires<IntegerConcept<R_value> >();
|
||||
|
||||
disjoint_sets<Rank, Parent> dset(rank, parent);
|
||||
|
||||
typename graph_traits<Graph const>::vertex_iterator ui, uiend;
|
||||
for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui)
|
||||
dset.make_set(*ui);
|
||||
|
||||
typedef indirect_cmp<Weight, std::greater<W_value> > weight_greater;
|
||||
weight_greater wl(weight);
|
||||
std::priority_queue<Edge, std::vector<Edge>, weight_greater> Q(wl);
|
||||
/*push all edge into Q*/
|
||||
typename graph_traits<Graph const>::edge_iterator ei, eiend;
|
||||
for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei)
|
||||
Q.push(*ei);
|
||||
|
||||
while (! Q.empty()) {
|
||||
Edge e = Q.top();
|
||||
Q.pop();
|
||||
Vertex u = dset.find_set(source(e, G));
|
||||
Vertex v = dset.find_set(target(e, G));
|
||||
if ( u != v ) {
|
||||
*spanning_tree_edges++ = e;
|
||||
dset.link(u, v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
// Named Parameters Variants
|
||||
|
||||
template <class Graph, class OutputIterator>
|
||||
inline void
|
||||
kruskal_minimum_spanning_tree(const Graph& g,
|
||||
OutputIterator spanning_tree_edges)
|
||||
{
|
||||
typedef typename graph_traits<Graph>::vertices_size_type size_type;
|
||||
typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t;
|
||||
typedef typename property_map<Graph, vertex_index_t>::type index_map_t;
|
||||
typename graph_traits<Graph>::vertices_size_type
|
||||
n = num_vertices(g);
|
||||
std::vector<size_type> rank_map(n);
|
||||
std::vector<vertex_t> pred_map(n);
|
||||
|
||||
detail::kruskal_mst_impl
|
||||
(g, spanning_tree_edges,
|
||||
make_iterator_property_map(rank_map.begin(), get(vertex_index, g), rank_map[0]),
|
||||
make_iterator_property_map(pred_map.begin(), get(vertex_index, g), pred_map[0]),
|
||||
get(edge_weight, g));
|
||||
}
|
||||
|
||||
template <class Graph, class OutputIterator, class P, class T, class R>
|
||||
inline void
|
||||
kruskal_minimum_spanning_tree(const Graph& g,
|
||||
|
||||
OutputIterator spanning_tree_edges,
|
||||
const bgl_named_params<P, T, R>& params)
|
||||
{
|
||||
typedef typename graph_traits<Graph>::vertices_size_type size_type;
|
||||
typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t;
|
||||
typename graph_traits<Graph>::vertices_size_type n;
|
||||
n = is_default_param(get_param(params, vertex_rank))
|
||||
? num_vertices(g) : 1;
|
||||
std::vector<size_type> rank_map(n);
|
||||
n = is_default_param(get_param(params, vertex_predecessor))
|
||||
? num_vertices(g) : 1;
|
||||
std::vector<vertex_t> pred_map(n);
|
||||
|
||||
detail::kruskal_mst_impl
|
||||
(g, spanning_tree_edges,
|
||||
choose_param
|
||||
(get_param(params, vertex_rank),
|
||||
make_iterator_property_map
|
||||
(rank_map.begin(),
|
||||
choose_const_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])),
|
||||
choose_param
|
||||
(get_param(params, vertex_predecessor),
|
||||
make_iterator_property_map
|
||||
(pred_map.begin(),
|
||||
choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
|
||||
pred_map[0])),
|
||||
choose_const_pmap(get_param(params, edge_weight), g, edge_weight));
|
||||
}
|
||||
|
||||
} // namespace boost
|
||||
|
||||
|
||||
#endif // BOOST_GRAPH_MST_KRUSKAL_HPP
|
||||
|
||||
//=======================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// THIS FILE HAS BEEN MODIFIED FOR CONST-CORRECTNESS
|
||||
// February 2007, Fernando Cacciola (fernando.cacciola@gmail.com)
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//=======================================================================
|
||||
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
|
||||
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//=======================================================================
|
||||
#ifndef BOOST_GRAPH_MST_KRUSKAL_HPP
|
||||
#define BOOST_GRAPH_MST_KRUSKAL_HPP
|
||||
|
||||
/*
|
||||
*Minimum Spanning Tree
|
||||
* Kruskal Algorithm
|
||||
*
|
||||
*Requirement:
|
||||
* undirected graph
|
||||
*/
|
||||
|
||||
#include <vector>
|
||||
#include <queue>
|
||||
#include <functional>
|
||||
|
||||
#include <boost/property_map.hpp>
|
||||
#include <boost/graph/graph_concepts.hpp>
|
||||
#include <boost/graph/named_function_params.hpp>
|
||||
#include <boost/pending/disjoint_sets.hpp>
|
||||
#include <boost/pending/indirect_cmp.hpp>
|
||||
|
||||
|
||||
namespace boost {
|
||||
|
||||
// Kruskal's algorithm for Minimum Spanning Tree
|
||||
//
|
||||
// This is a greedy algorithm to calculate the Minimum Spanning Tree
|
||||
// for an undirected graph with weighted edges. The output will be a
|
||||
// set of edges.
|
||||
//
|
||||
|
||||
namespace detail {
|
||||
|
||||
template <class Graph, class OutputIterator,
|
||||
class Rank, class Parent, class Weight>
|
||||
void
|
||||
kruskal_mst_impl(const Graph& G,
|
||||
OutputIterator spanning_tree_edges,
|
||||
Rank rank, Parent parent, Weight weight)
|
||||
{
|
||||
typedef typename graph_traits<Graph const>::vertex_descriptor Vertex;
|
||||
typedef typename graph_traits<Graph const>::edge_descriptor Edge;
|
||||
//function_requires<VertexListGraphConcept<Graph> >();
|
||||
//function_requires<EdgeListGraphConcept<Graph> >();
|
||||
//function_requires<OutputIteratorConcept<OutputIterator, Edge> >();
|
||||
//function_requires<ReadWritePropertyMapConcept<Rank, Vertex> >();
|
||||
//function_requires<ReadWritePropertyMapConcept<Parent, Vertex> >();
|
||||
//function_requires<ReadablePropertyMapConcept<Weight, Edge> >();
|
||||
typedef typename property_traits<Weight>::value_type W_value;
|
||||
typedef typename property_traits<Rank>::value_type R_value;
|
||||
typedef typename property_traits<Parent>::value_type P_value;
|
||||
//function_requires<ComparableConcept<W_value> >();
|
||||
//function_requires<ConvertibleConcept<P_value, Vertex> >();
|
||||
//function_requires<IntegerConcept<R_value> >();
|
||||
|
||||
disjoint_sets<Rank, Parent> dset(rank, parent);
|
||||
|
||||
typename graph_traits<Graph const>::vertex_iterator ui, uiend;
|
||||
for (boost::tie(ui, uiend) = vertices(G); ui != uiend; ++ui)
|
||||
dset.make_set(*ui);
|
||||
|
||||
typedef indirect_cmp<Weight, std::greater<W_value> > weight_greater;
|
||||
weight_greater wl(weight);
|
||||
std::priority_queue<Edge, std::vector<Edge>, weight_greater> Q(wl);
|
||||
/*push all edge into Q*/
|
||||
typename graph_traits<Graph const>::edge_iterator ei, eiend;
|
||||
for (boost::tie(ei, eiend) = edges(G); ei != eiend; ++ei)
|
||||
Q.push(*ei);
|
||||
|
||||
while (! Q.empty()) {
|
||||
Edge e = Q.top();
|
||||
Q.pop();
|
||||
Vertex u = dset.find_set(source(e, G));
|
||||
Vertex v = dset.find_set(target(e, G));
|
||||
if ( u != v ) {
|
||||
*spanning_tree_edges++ = e;
|
||||
dset.link(u, v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
// Named Parameters Variants
|
||||
|
||||
template <class Graph, class OutputIterator>
|
||||
inline void
|
||||
kruskal_minimum_spanning_tree(const Graph& g,
|
||||
OutputIterator spanning_tree_edges)
|
||||
{
|
||||
typedef typename graph_traits<Graph>::vertices_size_type size_type;
|
||||
typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t;
|
||||
typedef typename property_map<Graph, vertex_index_t>::type index_map_t;
|
||||
typename graph_traits<Graph>::vertices_size_type
|
||||
n = num_vertices(g);
|
||||
std::vector<size_type> rank_map(n);
|
||||
std::vector<vertex_t> pred_map(n);
|
||||
|
||||
detail::kruskal_mst_impl
|
||||
(g, spanning_tree_edges,
|
||||
make_iterator_property_map(rank_map.begin(), get(vertex_index, g), rank_map[0]),
|
||||
make_iterator_property_map(pred_map.begin(), get(vertex_index, g), pred_map[0]),
|
||||
get(edge_weight, g));
|
||||
}
|
||||
|
||||
template <class Graph, class OutputIterator, class P, class T, class R>
|
||||
inline void
|
||||
kruskal_minimum_spanning_tree(const Graph& g,
|
||||
|
||||
OutputIterator spanning_tree_edges,
|
||||
const bgl_named_params<P, T, R>& params)
|
||||
{
|
||||
typedef typename graph_traits<Graph>::vertices_size_type size_type;
|
||||
typedef typename graph_traits<Graph const>::vertex_descriptor vertex_t;
|
||||
typename graph_traits<Graph>::vertices_size_type n;
|
||||
n = is_default_param(get_param(params, vertex_rank))
|
||||
? num_vertices(g) : 1;
|
||||
std::vector<size_type> rank_map(n);
|
||||
n = is_default_param(get_param(params, vertex_predecessor))
|
||||
? num_vertices(g) : 1;
|
||||
std::vector<vertex_t> pred_map(n);
|
||||
|
||||
detail::kruskal_mst_impl
|
||||
(g, spanning_tree_edges,
|
||||
choose_param
|
||||
(get_param(params, vertex_rank),
|
||||
make_iterator_property_map
|
||||
(rank_map.begin(),
|
||||
choose_const_pmap(get_param(params, vertex_index), g, vertex_index), rank_map[0])),
|
||||
choose_param
|
||||
(get_param(params, vertex_predecessor),
|
||||
make_iterator_property_map
|
||||
(pred_map.begin(),
|
||||
choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
|
||||
pred_map[0])),
|
||||
choose_const_pmap(get_param(params, edge_weight), g, edge_weight));
|
||||
}
|
||||
|
||||
} // namespace boost
|
||||
|
||||
|
||||
#endif // BOOST_GRAPH_MST_KRUSKAL_HPP
|
||||
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
// Copyright (c) 1997-2007 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL: svn+ssh://CGAL/svn/cgal/trunk/Installation/include/CGAL/Sun_fixes.h $
|
||||
// $Id: Sun_fixes.h 28904 2006-02-28 15:11:51Z glisse $
|
||||
//
|
||||
//
|
||||
// Author(s) : Fernando Cacciola (fernando.cacciola@geometryfactory.com)
|
||||
|
||||
//
|
||||
// This file is generated by install_cgal for non-windows compilers (or cl.exe but via cygwin)
|
||||
// The real file (for MSVC) is in /CGAL/config/msvc/CGAL/auto_link.h
|
||||
//
|
||||
// Copyright (c) 2007 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
// Author(s) : Fernando Cacciola (fernando.cacciola@geometryfactory.com)
|
||||
|
||||
//
|
||||
// This file is for non-windows compilers running in non-windows platforms (such as cl.exe via cygwin)
|
||||
// The real file (for MSVC) is in /CGAL/config/msvc/CGAL/auto_link.h
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,152 +1,152 @@
|
|||
// Copyright (c) 2003 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL: svn+ssh://CGAL/svn/cgal/trunk/STL_Extension/include/CGAL/Iterator_transform.h $
|
||||
// $Id: Iterator_transform.h 28567 2006-02-16 14:30:13Z lsaboret $
|
||||
//
|
||||
//
|
||||
// Author(s) : Michael Hoffmann <hoffmann@inf.ethz.ch>
|
||||
// Lutz Kettner <kettner@mpi-sb.mpg.de>
|
||||
// Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
|
||||
// Fernando Cacciola <fernando.cacciola@geometryfactory.com>
|
||||
|
||||
#ifndef CGAL_ITERATOR_TRANSFORM_H
|
||||
#define CGAL_ITERATOR_TRANSFORM_H 1
|
||||
|
||||
#include <CGAL/Iterator_project.h>
|
||||
|
||||
CGAL_BEGIN_NAMESPACE
|
||||
|
||||
template < class I, class Fct>
|
||||
class Iterator_transform {
|
||||
protected:
|
||||
I nt; // The internal iterator.
|
||||
public:
|
||||
typedef Iterator_transform<I,Fct> Self;
|
||||
typedef I Iterator; // base iterator
|
||||
typedef std::iterator_traits<I> traits;
|
||||
typedef typename traits::difference_type difference_type;
|
||||
typedef typename traits::iterator_category iterator_category;
|
||||
typedef typename traits::value_type base_value_type;
|
||||
typedef typename traits::pointer base_pointer;
|
||||
typedef typename traits::reference base_reference;
|
||||
|
||||
typedef typename Fct::argument_type argument_type;
|
||||
typedef typename Fct::result_type value_type;
|
||||
|
||||
|
||||
// This iterator returns rvalues by design (allowing the conversion function to return new objects)
|
||||
typedef value_type reference;
|
||||
|
||||
// Use I_TYPE_MATCH_IF to find correct pointer type.
|
||||
typedef I_TYPE_MATCH_IF< base_pointer, const base_value_type *,
|
||||
const value_type *, value_type *> Match2;
|
||||
typedef typename Match2::Result pointer;
|
||||
|
||||
// CREATION
|
||||
// --------
|
||||
|
||||
Iterator_transform() {}
|
||||
Iterator_transform( I j) : nt(j) {}
|
||||
|
||||
// make two iterators assignable if the underlying iterators are
|
||||
template <class I2>
|
||||
Iterator_transform( const Iterator_transform<I2,Fct>& i2)
|
||||
: nt( i2.current_iterator()) {}
|
||||
|
||||
template <class I2>
|
||||
Self& operator= ( const Iterator_transform<I2,Fct>& i2) {
|
||||
nt = i2.current_iterator();
|
||||
return *this;
|
||||
}
|
||||
|
||||
// OPERATIONS Forward Category
|
||||
// ---------------------------
|
||||
|
||||
Iterator current_iterator() const { return nt;}
|
||||
bool operator==( const Self& i) const { return ( nt == i.nt); }
|
||||
bool operator!=( const Self& i) const { return !(*this == i); }
|
||||
|
||||
reference operator* () const
|
||||
{
|
||||
Fct fct;
|
||||
return fct(*nt);
|
||||
}
|
||||
|
||||
Self& operator++() {
|
||||
++nt;
|
||||
return *this;
|
||||
}
|
||||
Self operator++(int) {
|
||||
Self tmp = *this;
|
||||
++*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
// OPERATIONS Bidirectional Category
|
||||
// ---------------------------------
|
||||
|
||||
Self& operator--() {
|
||||
--nt;
|
||||
return *this;
|
||||
}
|
||||
Self operator--(int) {
|
||||
Self tmp = *this;
|
||||
--*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
// OPERATIONS Random Access Category
|
||||
// ---------------------------------
|
||||
|
||||
Self& operator+=( difference_type n) {
|
||||
nt += n;
|
||||
return *this;
|
||||
}
|
||||
Self operator+( difference_type n) const {
|
||||
Self tmp = *this;
|
||||
return tmp += n;
|
||||
}
|
||||
Self& operator-=( difference_type n) {
|
||||
return operator+=( -n);
|
||||
}
|
||||
Self operator-( difference_type n) const {
|
||||
Self tmp = *this;
|
||||
return tmp += -n;
|
||||
}
|
||||
difference_type operator-( const Self& i) const { return nt - i.nt; }
|
||||
reference operator[]( difference_type n) const {
|
||||
Self tmp = *this;
|
||||
tmp += n;
|
||||
return tmp.operator*();
|
||||
}
|
||||
bool operator< ( const Self& i) const { return ( nt < i.nt); }
|
||||
bool operator> ( const Self& i) const { return i < *this; }
|
||||
bool operator<=( const Self& i) const { return !(i < *this); }
|
||||
bool operator>=( const Self& i) const { return !(*this < i); }
|
||||
};
|
||||
|
||||
template < class Dist, class Fct, class I>
|
||||
inline
|
||||
Iterator_transform<I,Fct>
|
||||
operator+( Dist n, Iterator_transform<I,Fct> i) {
|
||||
return i += n;
|
||||
}
|
||||
|
||||
CGAL_END_NAMESPACE
|
||||
#endif // CGAL_Iterator_transform_H //
|
||||
// EOF //
|
||||
// Copyright (c) 2003 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
// Author(s) : Michael Hoffmann <hoffmann@inf.ethz.ch>
|
||||
// Lutz Kettner <kettner@mpi-sb.mpg.de>
|
||||
// Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
|
||||
// Fernando Cacciola <fernando.cacciola@geometryfactory.com>
|
||||
|
||||
#ifndef CGAL_ITERATOR_TRANSFORM_H
|
||||
#define CGAL_ITERATOR_TRANSFORM_H 1
|
||||
|
||||
#include <CGAL/Iterator_project.h>
|
||||
|
||||
CGAL_BEGIN_NAMESPACE
|
||||
|
||||
template < class I, class Fct>
|
||||
class Iterator_transform {
|
||||
protected:
|
||||
I nt; // The internal iterator.
|
||||
public:
|
||||
typedef Iterator_transform<I,Fct> Self;
|
||||
typedef I Iterator; // base iterator
|
||||
typedef std::iterator_traits<I> traits;
|
||||
typedef typename traits::difference_type difference_type;
|
||||
typedef typename traits::iterator_category iterator_category;
|
||||
typedef typename traits::value_type base_value_type;
|
||||
typedef typename traits::pointer base_pointer;
|
||||
typedef typename traits::reference base_reference;
|
||||
|
||||
typedef typename Fct::argument_type argument_type;
|
||||
typedef typename Fct::result_type value_type;
|
||||
|
||||
|
||||
// This iterator returns rvalues by design (allowing the conversion function to return new objects)
|
||||
typedef value_type reference;
|
||||
|
||||
// Use I_TYPE_MATCH_IF to find correct pointer type.
|
||||
typedef I_TYPE_MATCH_IF< base_pointer, const base_value_type *,
|
||||
const value_type *, value_type *> Match2;
|
||||
typedef typename Match2::Result pointer;
|
||||
|
||||
// CREATION
|
||||
// --------
|
||||
|
||||
Iterator_transform() {}
|
||||
Iterator_transform( I j) : nt(j) {}
|
||||
|
||||
// make two iterators assignable if the underlying iterators are
|
||||
template <class I2>
|
||||
Iterator_transform( const Iterator_transform<I2,Fct>& i2)
|
||||
: nt( i2.current_iterator()) {}
|
||||
|
||||
template <class I2>
|
||||
Self& operator= ( const Iterator_transform<I2,Fct>& i2) {
|
||||
nt = i2.current_iterator();
|
||||
return *this;
|
||||
}
|
||||
|
||||
// OPERATIONS Forward Category
|
||||
// ---------------------------
|
||||
|
||||
Iterator current_iterator() const { return nt;}
|
||||
bool operator==( const Self& i) const { return ( nt == i.nt); }
|
||||
bool operator!=( const Self& i) const { return !(*this == i); }
|
||||
|
||||
reference operator* () const
|
||||
{
|
||||
Fct fct;
|
||||
return fct(*nt);
|
||||
}
|
||||
|
||||
Self& operator++() {
|
||||
++nt;
|
||||
return *this;
|
||||
}
|
||||
Self operator++(int) {
|
||||
Self tmp = *this;
|
||||
++*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
// OPERATIONS Bidirectional Category
|
||||
// ---------------------------------
|
||||
|
||||
Self& operator--() {
|
||||
--nt;
|
||||
return *this;
|
||||
}
|
||||
Self operator--(int) {
|
||||
Self tmp = *this;
|
||||
--*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
// OPERATIONS Random Access Category
|
||||
// ---------------------------------
|
||||
|
||||
Self& operator+=( difference_type n) {
|
||||
nt += n;
|
||||
return *this;
|
||||
}
|
||||
Self operator+( difference_type n) const {
|
||||
Self tmp = *this;
|
||||
return tmp += n;
|
||||
}
|
||||
Self& operator-=( difference_type n) {
|
||||
return operator+=( -n);
|
||||
}
|
||||
Self operator-( difference_type n) const {
|
||||
Self tmp = *this;
|
||||
return tmp += -n;
|
||||
}
|
||||
difference_type operator-( const Self& i) const { return nt - i.nt; }
|
||||
reference operator[]( difference_type n) const {
|
||||
Self tmp = *this;
|
||||
tmp += n;
|
||||
return tmp.operator*();
|
||||
}
|
||||
bool operator< ( const Self& i) const { return ( nt < i.nt); }
|
||||
bool operator> ( const Self& i) const { return i < *this; }
|
||||
bool operator<=( const Self& i) const { return !(i < *this); }
|
||||
bool operator>=( const Self& i) const { return !(*this < i); }
|
||||
};
|
||||
|
||||
template < class Dist, class Fct, class I>
|
||||
inline
|
||||
Iterator_transform<I,Fct>
|
||||
operator+( Dist n, Iterator_transform<I,Fct> i) {
|
||||
return i += n;
|
||||
}
|
||||
|
||||
CGAL_END_NAMESPACE
|
||||
#endif // CGAL_Iterator_transform_H //
|
||||
// EOF //
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ if [ -d $h ]; then
|
|||
k=`echo $i|sed -e "s/\.$ext//"`;
|
||||
|
||||
# Create $jp VC++ 7.1 project file if it doesn't exist
|
||||
jp=`echo $i|sed -e "s/\.$ext/\_VC71.vcproj/"`;
|
||||
jp=`echo $i|sed -e "s/\.$ext/\_71.vcproj/"`;
|
||||
if [[ ! -e $jp ]]; then
|
||||
echo "Creating $jp"
|
||||
sed -e"s/master/$k/g" ../../developer_scripts/examples/master_VC71.vcproj > ./text/temp.txt;
|
||||
sed -e"s/master/$k/g" ../../developer_scripts/examples/master_71.vcproj > ./text/temp.txt;
|
||||
sed -e"s/EXT/$ext/g" ./text/temp.txt > ./text/temp2.txt;
|
||||
sed -e"s/test_msvc71.exe/$ofn/g" ./text/temp2.txt > ./text/temp3.txt;
|
||||
sed -e"s/test_msvc71/$k/g" ./text/temp3.txt > ./text/$jp;
|
||||
|
|
@ -41,10 +41,10 @@ if [ -d $h ]; then
|
|||
fi
|
||||
|
||||
# Create $jp VC++ 8.0 project file if it doesn't exist
|
||||
jp=`echo $i|sed -e "s/\.$ext/\_VC80.vcproj/"`;
|
||||
jp=`echo $i|sed -e "s/\.$ext/\_80.vcproj/"`;
|
||||
if [[ ! -e $jp ]]; then
|
||||
echo "Creating $jp"
|
||||
sed -e"s/master/$k/g" ../../developer_scripts/examples/master_VC80.vcproj > ./text/temp.txt;
|
||||
sed -e"s/master/$k/g" ../../developer_scripts/examples/master_80.vcproj > ./text/temp.txt;
|
||||
sed -e"s/EXT/$ext/g" ./text/temp.txt > ./text/temp2.txt;
|
||||
sed -e"s/test_msvc80.exe/$ofn/g" ./text/temp2.txt > ./text/temp3.txt;
|
||||
sed -e"s/test_msvc80/$k/g" ./text/temp3.txt > ./text/$jp;
|
||||
|
|
|
|||
|
|
@ -1,331 +1,331 @@
|
|||
// This header file is a copy of "boost/config/auto_link.hpp"
|
||||
// but slightly modified to accomodate CGAL libraries.
|
||||
//
|
||||
// Modified for CGAL by:
|
||||
// Fernando Cacciola
|
||||
// February 2007
|
||||
//
|
||||
//--------------------------------------------------------------------------------------
|
||||
//
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
/*************************************************************************
|
||||
|
||||
USAGE:
|
||||
~~~~~~
|
||||
|
||||
Before including this header you must define one or more of define the following macros:
|
||||
|
||||
CGAL_LIB_NAME: Required: A string containing the basename of the library,
|
||||
for example boost_regex.
|
||||
CGAL_LIB_TOOLSET: Optional: the base name of the toolset.
|
||||
CGAL_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
||||
of the library selected (useful for debugging).
|
||||
CGAL_AUTO_LINK_NOMANGLE: Specifies that we should link to CGAL_LIB_NAME.lib,
|
||||
rather than a mangled-name version.
|
||||
|
||||
ALL these macros will be undef'ed at the end of the header, even though they are defined from the outside.
|
||||
That means you must always define them before including this.
|
||||
|
||||
Further, this header has no include guards because you can reuse it several times with different
|
||||
macros (arguments) in order to link different libraries.
|
||||
Be sure to include it only once for each target library!
|
||||
|
||||
Algorithm:
|
||||
~~~~~~~~~~
|
||||
|
||||
Libraries for Borland and Microsoft compilers are automatically
|
||||
selected here, the name of the lib is selected according to the following
|
||||
formula:
|
||||
|
||||
CGAL_LIB_NAME
|
||||
+ "_"
|
||||
+ CGAL_LIB_TOOLSET
|
||||
+ CGAL_LIB_THREAD_OPT
|
||||
+ CGAL_LIB_RT_OPT
|
||||
|
||||
These are defined as:
|
||||
|
||||
CGAL_LIB_NAME: The base name of the lib ( for example boost_regex).
|
||||
|
||||
CGAL_LIB_TOOLSET: The compiler toolset name (vc71, vc80 etc).
|
||||
|
||||
CGAL_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
||||
|
||||
CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||
contains one or more of the following letters after
|
||||
a hiphen:
|
||||
|
||||
s static runtime (dynamic if not present).
|
||||
d debug build (release if not present).
|
||||
g debug/diagnostic runtime (release if not present).
|
||||
p STLPort Build.
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
# ifndef BOOST_CONFIG_HPP
|
||||
# include <boost/config.hpp>
|
||||
# endif
|
||||
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
|
||||
//
|
||||
// C language compatability (no, honestly)
|
||||
//
|
||||
# define BOOST_MSVC _MSC_VER
|
||||
# define BOOST_STRINGIZEIZE(X) BOOST_DO_STRINGIZE(X)
|
||||
# define BOOST_DO_STRINGIZE(X) #X
|
||||
#endif
|
||||
//
|
||||
// Only include what follows for known and supported compilers:
|
||||
//
|
||||
#if defined(BOOST_MSVC) \
|
||||
|| defined(__BORLANDC__) \
|
||||
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|
||||
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
|
||||
|
||||
#ifndef CGAL_LIB_NAME
|
||||
# error "Macro CGAL_LIB_NAME not set (internal error)"
|
||||
#endif
|
||||
|
||||
//
|
||||
// error check:
|
||||
//
|
||||
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
|
||||
# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
|
||||
# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
|
||||
# error "Incompatible build options"
|
||||
#endif
|
||||
//
|
||||
// select toolset if not defined already:
|
||||
//
|
||||
#ifndef CGAL_LIB_TOOLSET
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
|
||||
|
||||
// vc6:
|
||||
# define CGAL_LIB_TOOLSET "vc6"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
|
||||
|
||||
// vc7:
|
||||
# define CGAL_LIB_TOOLSET "vc7"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
|
||||
|
||||
// vc71:
|
||||
# define CGAL_LIB_TOOLSET "vc71"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
|
||||
|
||||
// vc80:
|
||||
# define CGAL_LIB_TOOLSET "vc80"
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
# define CGAL_LIB_TOOLSET "bcb"
|
||||
|
||||
#elif defined(__ICL)
|
||||
|
||||
// Intel C++, no version number:
|
||||
# define CGAL_LIB_TOOLSET "iw"
|
||||
|
||||
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
|
||||
|
||||
// Metrowerks CodeWarrior 8.x
|
||||
# define CGAL_LIB_TOOLSET "cw8"
|
||||
|
||||
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
|
||||
|
||||
// Metrowerks CodeWarrior 9.x
|
||||
# define CGAL_LIB_TOOLSET "cw9"
|
||||
|
||||
#endif
|
||||
#endif // CGAL_LIB_TOOLSET
|
||||
|
||||
//
|
||||
// select thread opt:
|
||||
//
|
||||
#if defined(_MT) || defined(__MT__)
|
||||
# define CGAL_LIB_THREAD_OPT "-mt"
|
||||
#else
|
||||
# define CGAL_LIB_THREAD_OPT
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) || defined(__MWERKS__)
|
||||
|
||||
# ifdef _DLL
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-gdp"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-gdp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-p"
|
||||
# endif
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-gdpn"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-gdpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-pn"
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-gd"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-sgdp"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-sgdp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-sp"
|
||||
# endif
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-sgdpn"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-sgdpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-spn"
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-sgd"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
//
|
||||
// figure out whether we want the debug builds or not:
|
||||
//
|
||||
#if __BORLANDC__ > 0x561
|
||||
#pragma defineonoption CGAL_BORLAND_DEBUG -v
|
||||
#endif
|
||||
//
|
||||
// sanity check:
|
||||
//
|
||||
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
||||
#error "Pre-built versions of the CGAL libraries are not provided in STLPort-debug form"
|
||||
#endif
|
||||
|
||||
# ifdef _RTLDLL
|
||||
|
||||
# ifdef CGAL_BORLAND_DEBUG
|
||||
# define CGAL_LIB_RT_OPT "-d"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# ifdef CGAL_BORLAND_DEBUG
|
||||
# define CGAL_LIB_RT_OPT "-sd"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// now include the lib:
|
||||
//
|
||||
#if defined(CGAL_LIB_NAME) \
|
||||
&& defined(CGAL_LIB_TOOLSET) \
|
||||
&& defined(CGAL_LIB_THREAD_OPT) \
|
||||
&& defined(CGAL_LIB_RT_OPT) \
|
||||
|
||||
#ifndef CGAL_AUTO_LINK_NOMANGLE
|
||||
# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) "-" CGAL_LIB_TOOLSET CGAL_LIB_THREAD_OPT CGAL_LIB_RT_OPT ".lib"
|
||||
#else
|
||||
# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) ".lib"
|
||||
#endif
|
||||
|
||||
#ifndef CGAL_AUTO_LINK_NOMANGLE
|
||||
# pragma comment(lib, CGAL_LIB_FULL_NAME )
|
||||
# ifdef CGAL_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME )
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
# error "some required macros where not defined (internal logic error)."
|
||||
#endif
|
||||
|
||||
|
||||
#endif // _MSC_VER || __BORLANDC__
|
||||
|
||||
//
|
||||
// finally undef any macros we may have set:
|
||||
//
|
||||
#if defined(CGAL_LIB_NAME)
|
||||
# undef CGAL_LIB_NAME
|
||||
#endif
|
||||
// Don't undef this one: it can be set by the user and should be the
|
||||
// same for all libraries:
|
||||
//#if defined(CGAL_LIB_TOOLSET)
|
||||
//# undef CGAL_LIB_TOOLSET
|
||||
//#endif
|
||||
#if defined(CGAL_LIB_THREAD_OPT)
|
||||
# undef CGAL_LIB_THREAD_OPT
|
||||
#endif
|
||||
#if defined(CGAL_LIB_RT_OPT)
|
||||
# undef CGAL_LIB_RT_OPT
|
||||
#endif
|
||||
#if defined(CGAL_LIB_LINK_OPT)
|
||||
# undef CGAL_LIB_LINK_OPT
|
||||
#endif
|
||||
#if defined(CGAL_AUTO_LINK_NOMANGLE)
|
||||
# undef CGAL_AUTO_LINK_NOMANGLE
|
||||
#endif
|
||||
#if defined(CGAL_LIB_FULL_NAME)
|
||||
# undef CGAL_LIB_FULL_NAME
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// This header file is a copy of "boost/config/auto_link.hpp"
|
||||
// but slightly modified to accomodate CGAL libraries.
|
||||
//
|
||||
// Modified for CGAL by:
|
||||
// Fernando Cacciola
|
||||
// February 2007
|
||||
//
|
||||
//--------------------------------------------------------------------------------------
|
||||
//
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
/*************************************************************************
|
||||
|
||||
USAGE:
|
||||
~~~~~~
|
||||
|
||||
Before including this header you must define one or more of define the following macros:
|
||||
|
||||
CGAL_LIB_NAME: Required: A string containing the basename of the library,
|
||||
for example boost_regex.
|
||||
CGAL_LIB_TOOLSET: Optional: the base name of the toolset.
|
||||
CGAL_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
||||
of the library selected (useful for debugging).
|
||||
CGAL_AUTO_LINK_NOMANGLE: Specifies that we should link to CGAL_LIB_NAME.lib,
|
||||
rather than a mangled-name version.
|
||||
|
||||
ALL these macros will be undef'ed at the end of the header, even though they are defined from the outside.
|
||||
That means you must always define them before including this.
|
||||
|
||||
Further, this header has no include guards because you can reuse it several times with different
|
||||
macros (arguments) in order to link different libraries.
|
||||
Be sure to include it only once for each target library!
|
||||
|
||||
Algorithm:
|
||||
~~~~~~~~~~
|
||||
|
||||
Libraries for Borland and Microsoft compilers are automatically
|
||||
selected here, the name of the lib is selected according to the following
|
||||
formula:
|
||||
|
||||
CGAL_LIB_NAME
|
||||
+ "_"
|
||||
+ CGAL_LIB_TOOLSET
|
||||
+ CGAL_LIB_THREAD_OPT
|
||||
+ CGAL_LIB_RT_OPT
|
||||
|
||||
These are defined as:
|
||||
|
||||
CGAL_LIB_NAME: The base name of the lib ( for example boost_regex).
|
||||
|
||||
CGAL_LIB_TOOLSET: The compiler toolset name (vc71, vc80 etc).
|
||||
|
||||
CGAL_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
||||
|
||||
CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||
contains one or more of the following letters after
|
||||
a hiphen:
|
||||
|
||||
s static runtime (dynamic if not present).
|
||||
d debug build (release if not present).
|
||||
g debug/diagnostic runtime (release if not present).
|
||||
p STLPort Build.
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
# ifndef BOOST_CONFIG_HPP
|
||||
# include <boost/config.hpp>
|
||||
# endif
|
||||
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
|
||||
//
|
||||
// C language compatability (no, honestly)
|
||||
//
|
||||
# define BOOST_MSVC _MSC_VER
|
||||
# define BOOST_STRINGIZEIZE(X) BOOST_DO_STRINGIZE(X)
|
||||
# define BOOST_DO_STRINGIZE(X) #X
|
||||
#endif
|
||||
//
|
||||
// Only include what follows for known and supported compilers:
|
||||
//
|
||||
#if defined(BOOST_MSVC) \
|
||||
|| defined(__BORLANDC__) \
|
||||
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|
||||
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
|
||||
|
||||
#ifndef CGAL_LIB_NAME
|
||||
# error "Macro CGAL_LIB_NAME not set (internal error)"
|
||||
#endif
|
||||
|
||||
//
|
||||
// error check:
|
||||
//
|
||||
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
|
||||
# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
|
||||
# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
|
||||
# error "Incompatible build options"
|
||||
#endif
|
||||
//
|
||||
// select toolset if not defined already:
|
||||
//
|
||||
#ifndef CGAL_LIB_TOOLSET
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
|
||||
|
||||
// vc6:
|
||||
# define CGAL_LIB_TOOLSET "vc6"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
|
||||
|
||||
// vc7:
|
||||
# define CGAL_LIB_TOOLSET "vc7"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
|
||||
|
||||
// vc71:
|
||||
# define CGAL_LIB_TOOLSET "vc71"
|
||||
|
||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
|
||||
|
||||
// vc80:
|
||||
# define CGAL_LIB_TOOLSET "vc80"
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
# define CGAL_LIB_TOOLSET "bcb"
|
||||
|
||||
#elif defined(__ICL)
|
||||
|
||||
// Intel C++, no version number:
|
||||
# define CGAL_LIB_TOOLSET "iw"
|
||||
|
||||
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
|
||||
|
||||
// Metrowerks CodeWarrior 8.x
|
||||
# define CGAL_LIB_TOOLSET "cw8"
|
||||
|
||||
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
|
||||
|
||||
// Metrowerks CodeWarrior 9.x
|
||||
# define CGAL_LIB_TOOLSET "cw9"
|
||||
|
||||
#endif
|
||||
#endif // CGAL_LIB_TOOLSET
|
||||
|
||||
//
|
||||
// select thread opt:
|
||||
//
|
||||
#if defined(_MT) || defined(__MT__)
|
||||
# define CGAL_LIB_THREAD_OPT "-mt"
|
||||
#else
|
||||
# define CGAL_LIB_THREAD_OPT
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) || defined(__MWERKS__)
|
||||
|
||||
# ifdef _DLL
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-gdp"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-gdp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-p"
|
||||
# endif
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-gdpn"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-gdpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-pn"
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-gd"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-sgdp"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-sgdp"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-sp"
|
||||
# endif
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define CGAL_LIB_RT_OPT "-sgdpn"
|
||||
# elif defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-sgdpn"
|
||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-spn"
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# define CGAL_LIB_RT_OPT "-sgd"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
//
|
||||
// figure out whether we want the debug builds or not:
|
||||
//
|
||||
#if __BORLANDC__ > 0x561
|
||||
#pragma defineonoption CGAL_BORLAND_DEBUG -v
|
||||
#endif
|
||||
//
|
||||
// sanity check:
|
||||
//
|
||||
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
||||
#error "Pre-built versions of the CGAL libraries are not provided in STLPort-debug form"
|
||||
#endif
|
||||
|
||||
# ifdef _RTLDLL
|
||||
|
||||
# ifdef CGAL_BORLAND_DEBUG
|
||||
# define CGAL_LIB_RT_OPT "-d"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# ifdef CGAL_BORLAND_DEBUG
|
||||
# define CGAL_LIB_RT_OPT "-sd"
|
||||
# else
|
||||
# define CGAL_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// now include the lib:
|
||||
//
|
||||
#if defined(CGAL_LIB_NAME) \
|
||||
&& defined(CGAL_LIB_TOOLSET) \
|
||||
&& defined(CGAL_LIB_THREAD_OPT) \
|
||||
&& defined(CGAL_LIB_RT_OPT) \
|
||||
|
||||
#ifndef CGAL_AUTO_LINK_NOMANGLE
|
||||
# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) "-" CGAL_LIB_TOOLSET CGAL_LIB_THREAD_OPT CGAL_LIB_RT_OPT ".lib"
|
||||
#else
|
||||
# define CGAL_LIB_FULL_NAME BOOST_STRINGIZE(CGAL_LIB_NAME) ".lib"
|
||||
#endif
|
||||
|
||||
#ifndef CGAL_AUTO_LINK_NOMANGLE
|
||||
# pragma comment(lib, CGAL_LIB_FULL_NAME )
|
||||
# ifdef CGAL_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME )
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
# error "some required macros where not defined (internal logic error)."
|
||||
#endif
|
||||
|
||||
|
||||
#endif // _MSC_VER || __BORLANDC__
|
||||
|
||||
//
|
||||
// finally undef any macros we may have set:
|
||||
//
|
||||
#if defined(CGAL_LIB_NAME)
|
||||
# undef CGAL_LIB_NAME
|
||||
#endif
|
||||
// Don't undef this one: it can be set by the user and should be the
|
||||
// same for all libraries:
|
||||
//#if defined(CGAL_LIB_TOOLSET)
|
||||
//# undef CGAL_LIB_TOOLSET
|
||||
//#endif
|
||||
#if defined(CGAL_LIB_THREAD_OPT)
|
||||
# undef CGAL_LIB_THREAD_OPT
|
||||
#endif
|
||||
#if defined(CGAL_LIB_RT_OPT)
|
||||
# undef CGAL_LIB_RT_OPT
|
||||
#endif
|
||||
#if defined(CGAL_LIB_LINK_OPT)
|
||||
# undef CGAL_LIB_LINK_OPT
|
||||
#endif
|
||||
#if defined(CGAL_AUTO_LINK_NOMANGLE)
|
||||
# undef CGAL_AUTO_LINK_NOMANGLE
|
||||
#endif
|
||||
#if defined(CGAL_LIB_FULL_NAME)
|
||||
# undef CGAL_LIB_FULL_NAME
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,289 +1,289 @@
|
|||
// Copyright (c) 1996-2004 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// Author(s): the install_cgal script
|
||||
|
||||
// Compiler specific configuration file for CGAL 3.2-I-437
|
||||
// System: i686_CYGWINNT-5.1_CL.EXE-1310
|
||||
// generated by install_cgal 30348
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
|
||||
//| standard C library functions in cctype (isdigit etc.) as macros.
|
||||
//| According to the standard they have to be functions.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not properly parse comma separated
|
||||
//| expressions in a base constructor call. (e.g. g++ 3.3).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_COMMA_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
|
||||
//| crashes with some conversion operators. G++ 3.3.0 is affected by
|
||||
//| this bug (it hits Darwin severely since it is the system compiler).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler wants you to remove the word
|
||||
//| template in some complicated dependent types.
|
||||
//| Any error with the message "Unexpected type name" is likely to be
|
||||
//| related to this bug in sunpro.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs when handling denormal values at
|
||||
//| compile time. At least PGCC 5.1-3 has the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with special features with IEEE 754
|
||||
//| handling, concerning is_valid() and is_finite() testing of infinity and
|
||||
//| nans. The workaround is to use bitfield operations.
|
||||
//| At least VC++, Borland and PGCC have the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_IEEE_754_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler (or assembler or linker) has problems with long names
|
||||
//| CGAL_CFG_LONGNAME_BUG is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_LONGNAME_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match function arguments
|
||||
//| of pointer type correctly, when the return type depends on
|
||||
//| the parameter's type. (e.g. sun C++ 5.3)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have arguments whose type
|
||||
//| depends on the template parameter.
|
||||
//| This bug appears for example on Sunpro 5.3 and 5.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_4 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have one template parameter
|
||||
//| to be passed explicitely when being called.
|
||||
//| This bug appears for example on g++ 3.3 and 3.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_5 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| VC 7.3 does not recognize when an operator in a class
|
||||
//| redefines the operator with the same signature in a base class
|
||||
//| It happens with the regular triangulation.
|
||||
//| No minimal testcase yet
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_MATCHING_BUG_6 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
|
||||
//| if the std::vector class does not have defined template constructors.
|
||||
//| This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
|
||||
//| if the compiler cannot recognize the declaration of a nested
|
||||
//| class as friend.
|
||||
//| Compilers such as the Intel compiler 8.x (for linux or windows),
|
||||
//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++
|
||||
//| standard is a bit vague on this issue, in other words what is referred
|
||||
//| to as "bug" above, may not really be a bug. Hopefully, the next standard
|
||||
//| will resolve this issue.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match a member
|
||||
//| definition to an existing declaration (eg., cl1310 Beta).
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NET2003_MATCHING_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| When template implementation files are not included in the source files,
|
||||
//| a compiler may attempt to find the unincluded template bodies
|
||||
//| automatically. For example, suppose that the following conditions are
|
||||
//| all true.
|
||||
//|
|
||||
//| - template entity ABC::f is declared in file xyz.h
|
||||
//| - an instantiation of ABC::f is required in a compilation
|
||||
//| - no definition of ABC::f appears in the source code processed by the
|
||||
//| compilation
|
||||
//|
|
||||
//| In this case, the compiler may look to see if the source file xyz.n exists,
|
||||
//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is
|
||||
//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The byte order of a machine architecture distinguishes into
|
||||
//| big-endian and little-endian machines.
|
||||
//| The following definition is set if it is a little-endian machine.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_BIG_ENDIAN 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support the operator Koenig
|
||||
//| lookup. That is, it does not search in the namespace of the arguments for
|
||||
//| the function.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know <limits> (g++-2.95)
|
||||
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
|
||||
//| CGAL_CFG_NO_LIMITS is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LIMITS 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know the locale classic
|
||||
//| CGAL_CFG_NO_LOCALE is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LOCALE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Tests if std::cout supports long double IO.
|
||||
//| pgCC 5.2-2 has this bug (only has for double and float).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The long long built-in integral type is not part of the ISO C++ standard,
|
||||
//| but many compilers support it nevertheless since it's part of the ISO
|
||||
//| C standard.
|
||||
//| The following definition is set if it is supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_LONG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not
|
||||
//| put the parts of the standard library inherited from the standard
|
||||
//| C library in namespace std. (only tests for the symbols used in CGAL)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STDC_NAMESPACE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| A basic test for the STL.
|
||||
//| If it fails, it probably means a bad CGAL installation.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STL 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| G++ 2.95.2 has problems with member functions implemented outside of
|
||||
//| the class body if this member function has a parameter type that is
|
||||
//| dependant on a template in the template parameter list of the class. A
|
||||
//| workaround would be to implement the member function inline in the class.
|
||||
//| The following definition is set if this error error occurs.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Nested templates in template parameter, such as 'template <
|
||||
//| template <class T> class A>' are not supported by any compiler.
|
||||
//| The following definition is set if they are not supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
|
||||
//| if a compiler does not support the two stage name lookup.
|
||||
//| This is a bug of G++ < 3.4 for example.
|
||||
//| Note that the program fails when the feature works,
|
||||
//| which is different from the other test programs.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler complains about an ambiguity between
|
||||
//| a type and itself when some members are defined out of line. This is
|
||||
//| a Sun CC bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class. This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class.
|
||||
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG
|
||||
//| is the return type of the member template.SunPro 5.5 should be OK with
|
||||
//| this code.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler is Sun's compiler and it uses the
|
||||
//| old Rogue Wave STL.
|
||||
//| The workarounds consist in faking iterator_traits and using a wrapper
|
||||
//| to reverse_iterator
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_SUNPRO_RWSTD 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder.
|
||||
//| At least g++ 2.95 and SunPro CC 5.3 have this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder or not use using.
|
||||
//| At least SunPro CC 5.3 has this bug where the typical error message is :
|
||||
//| "Error: The function B<int>::g() has not had a body defined."
|
||||
//| Note that the subtlely is that the error message does not mention
|
||||
//| "Member"...
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class, when there is a typedef of the base class.
|
||||
//| The workaround is to write a forwarder or not use using.
|
||||
//| At least MipsPRO CC 7.4 has this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1).
|
||||
//| nextafter() is part of ISO C99, but not ISO C++98 (hence <math.h> instead of <cmath>).
|
||||
//| CGAL_CFG_NO_NEXTAFTER is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_NEXTAFTER
|
||||
|
||||
// Copyright (c) 1996-2004 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// Author(s): the install_cgal script
|
||||
|
||||
// Compiler specific configuration file for CGAL 3.2-I-437
|
||||
// System: i686_CYGWINNT-5.1_CL.EXE-1310
|
||||
// generated by install_cgal 30348
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
|
||||
//| standard C library functions in cctype (isdigit etc.) as macros.
|
||||
//| According to the standard they have to be functions.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not properly parse comma separated
|
||||
//| expressions in a base constructor call. (e.g. g++ 3.3).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_COMMA_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
|
||||
//| crashes with some conversion operators. G++ 3.3.0 is affected by
|
||||
//| this bug (it hits Darwin severely since it is the system compiler).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler wants you to remove the word
|
||||
//| template in some complicated dependent types.
|
||||
//| Any error with the message "Unexpected type name" is likely to be
|
||||
//| related to this bug in sunpro.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs when handling denormal values at
|
||||
//| compile time. At least PGCC 5.1-3 has the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with special features with IEEE 754
|
||||
//| handling, concerning is_valid() and is_finite() testing of infinity and
|
||||
//| nans. The workaround is to use bitfield operations.
|
||||
//| At least VC++, Borland and PGCC have the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_IEEE_754_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler (or assembler or linker) has problems with long names
|
||||
//| CGAL_CFG_LONGNAME_BUG is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_LONGNAME_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match function arguments
|
||||
//| of pointer type correctly, when the return type depends on
|
||||
//| the parameter's type. (e.g. sun C++ 5.3)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have arguments whose type
|
||||
//| depends on the template parameter.
|
||||
//| This bug appears for example on Sunpro 5.3 and 5.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_4 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have one template parameter
|
||||
//| to be passed explicitely when being called.
|
||||
//| This bug appears for example on g++ 3.3 and 3.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_5 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| VC 7.3 does not recognize when an operator in a class
|
||||
//| redefines the operator with the same signature in a base class
|
||||
//| It happens with the regular triangulation.
|
||||
//| No minimal testcase yet
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_MATCHING_BUG_6 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
|
||||
//| if the std::vector class does not have defined template constructors.
|
||||
//| This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
|
||||
//| if the compiler cannot recognize the declaration of a nested
|
||||
//| class as friend.
|
||||
//| Compilers such as the Intel compiler 8.x (for linux or windows),
|
||||
//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++
|
||||
//| standard is a bit vague on this issue, in other words what is referred
|
||||
//| to as "bug" above, may not really be a bug. Hopefully, the next standard
|
||||
//| will resolve this issue.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match a member
|
||||
//| definition to an existing declaration (eg., cl1310 Beta).
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NET2003_MATCHING_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| When template implementation files are not included in the source files,
|
||||
//| a compiler may attempt to find the unincluded template bodies
|
||||
//| automatically. For example, suppose that the following conditions are
|
||||
//| all true.
|
||||
//|
|
||||
//| - template entity ABC::f is declared in file xyz.h
|
||||
//| - an instantiation of ABC::f is required in a compilation
|
||||
//| - no definition of ABC::f appears in the source code processed by the
|
||||
//| compilation
|
||||
//|
|
||||
//| In this case, the compiler may look to see if the source file xyz.n exists,
|
||||
//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is
|
||||
//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The byte order of a machine architecture distinguishes into
|
||||
//| big-endian and little-endian machines.
|
||||
//| The following definition is set if it is a little-endian machine.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_BIG_ENDIAN 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support the operator Koenig
|
||||
//| lookup. That is, it does not search in the namespace of the arguments for
|
||||
//| the function.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know <limits> (g++-2.95)
|
||||
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
|
||||
//| CGAL_CFG_NO_LIMITS is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LIMITS 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know the locale classic
|
||||
//| CGAL_CFG_NO_LOCALE is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LOCALE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Tests if std::cout supports long double IO.
|
||||
//| pgCC 5.2-2 has this bug (only has for double and float).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The long long built-in integral type is not part of the ISO C++ standard,
|
||||
//| but many compilers support it nevertheless since it's part of the ISO
|
||||
//| C standard.
|
||||
//| The following definition is set if it is supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_LONG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not
|
||||
//| put the parts of the standard library inherited from the standard
|
||||
//| C library in namespace std. (only tests for the symbols used in CGAL)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STDC_NAMESPACE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| A basic test for the STL.
|
||||
//| If it fails, it probably means a bad CGAL installation.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STL 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| G++ 2.95.2 has problems with member functions implemented outside of
|
||||
//| the class body if this member function has a parameter type that is
|
||||
//| dependant on a template in the template parameter list of the class. A
|
||||
//| workaround would be to implement the member function inline in the class.
|
||||
//| The following definition is set if this error error occurs.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Nested templates in template parameter, such as 'template <
|
||||
//| template <class T> class A>' are not supported by any compiler.
|
||||
//| The following definition is set if they are not supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
|
||||
//| if a compiler does not support the two stage name lookup.
|
||||
//| This is a bug of G++ < 3.4 for example.
|
||||
//| Note that the program fails when the feature works,
|
||||
//| which is different from the other test programs.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler complains about an ambiguity between
|
||||
//| a type and itself when some members are defined out of line. This is
|
||||
//| a Sun CC bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class. This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class.
|
||||
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG
|
||||
//| is the return type of the member template.SunPro 5.5 should be OK with
|
||||
//| this code.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler is Sun's compiler and it uses the
|
||||
//| old Rogue Wave STL.
|
||||
//| The workarounds consist in faking iterator_traits and using a wrapper
|
||||
//| to reverse_iterator
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_SUNPRO_RWSTD 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder.
|
||||
//| At least g++ 2.95 and SunPro CC 5.3 have this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder or not use using.
|
||||
//| At least SunPro CC 5.3 has this bug where the typical error message is :
|
||||
//| "Error: The function B<int>::g() has not had a body defined."
|
||||
//| Note that the subtlely is that the error message does not mention
|
||||
//| "Member"...
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class, when there is a typedef of the base class.
|
||||
//| The workaround is to write a forwarder or not use using.
|
||||
//| At least MipsPRO CC 7.4 has this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1).
|
||||
//| nextafter() is part of ISO C99, but not ISO C++98 (hence <math.h> instead of <cmath>).
|
||||
//| CGAL_CFG_NO_NEXTAFTER is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_NEXTAFTER
|
||||
|
||||
|
|
|
|||
|
|
@ -1,288 +1,288 @@
|
|||
// Copyright (c) 1996-2004 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// Author(s): the install_cgal script
|
||||
|
||||
// Compiler specific configuration file for CGAL 3.2-I-437
|
||||
// System: i686_CYGWINNT-5.1_CL.EXE-1310
|
||||
// generated by install_cgal 30348
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
|
||||
//| standard C library functions in cctype (isdigit etc.) as macros.
|
||||
//| According to the standard they have to be functions.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not properly parse comma separated
|
||||
//| expressions in a base constructor call. (e.g. g++ 3.3).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_COMMA_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
|
||||
//| crashes with some conversion operators. G++ 3.3.0 is affected by
|
||||
//| this bug (it hits Darwin severely since it is the system compiler).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler wants you to remove the word
|
||||
//| template in some complicated dependent types.
|
||||
//| Any error with the message "Unexpected type name" is likely to be
|
||||
//| related to this bug in sunpro.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs when handling denormal values at
|
||||
//| compile time. At least PGCC 5.1-3 has the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with special features with IEEE 754
|
||||
//| handling, concerning is_valid() and is_finite() testing of infinity and
|
||||
//| nans. The workaround is to use bitfield operations.
|
||||
//| At least VC++, Borland and PGCC have the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_IEEE_754_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler (or assembler or linker) has problems with long names
|
||||
//| CGAL_CFG_LONGNAME_BUG is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_LONGNAME_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match function arguments
|
||||
//| of pointer type correctly, when the return type depends on
|
||||
//| the parameter's type. (e.g. sun C++ 5.3)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have arguments whose type
|
||||
//| depends on the template parameter.
|
||||
//| This bug appears for example on Sunpro 5.3 and 5.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_4 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have one template parameter
|
||||
//| to be passed explicitely when being called.
|
||||
//| This bug appears for example on g++ 3.3 and 3.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_5 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| VC 7.3 does not recognize when an operator in a class
|
||||
//| redefines the operator with the same signature in a base class
|
||||
//| It happens with the regular triangulation.
|
||||
//| No minimal testcase yet
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_MATCHING_BUG_6 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
|
||||
//| if the std::vector class does not have defined template constructors.
|
||||
//| This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
|
||||
//| if the compiler cannot recognize the declaration of a nested
|
||||
//| class as friend.
|
||||
//| Compilers such as the Intel compiler 8.x (for linux or windows),
|
||||
//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++
|
||||
//| standard is a bit vague on this issue, in other words what is referred
|
||||
//| to as "bug" above, may not really be a bug. Hopefully, the next standard
|
||||
//| will resolve this issue.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match a member
|
||||
//| definition to an existing declaration (eg., cl1310 Beta).
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NET2003_MATCHING_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| When template implementation files are not included in the source files,
|
||||
//| a compiler may attempt to find the unincluded template bodies
|
||||
//| automatically. For example, suppose that the following conditions are
|
||||
//| all true.
|
||||
//|
|
||||
//| - template entity ABC::f is declared in file xyz.h
|
||||
//| - an instantiation of ABC::f is required in a compilation
|
||||
//| - no definition of ABC::f appears in the source code processed by the
|
||||
//| compilation
|
||||
//|
|
||||
//| In this case, the compiler may look to see if the source file xyz.n exists,
|
||||
//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is
|
||||
//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The byte order of a machine architecture distinguishes into
|
||||
//| big-endian and little-endian machines.
|
||||
//| The following definition is set if it is a little-endian machine.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_BIG_ENDIAN 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support the operator Koenig
|
||||
//| lookup. That is, it does not search in the namespace of the arguments for
|
||||
//| the function.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know <limits> (g++-2.95)
|
||||
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
|
||||
//| CGAL_CFG_NO_LIMITS is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LIMITS 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know the locale classic
|
||||
//| CGAL_CFG_NO_LOCALE is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LOCALE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Tests if std::cout supports long double IO.
|
||||
//| pgCC 5.2-2 has this bug (only has for double and float).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The long long built-in integral type is not part of the ISO C++ standard,
|
||||
//| but many compilers support it nevertheless since it's part of the ISO
|
||||
//| C standard.
|
||||
//| The following definition is set if it is supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_LONG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not
|
||||
//| put the parts of the standard library inherited from the standard
|
||||
//| C library in namespace std. (only tests for the symbols used in CGAL)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STDC_NAMESPACE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| A basic test for the STL.
|
||||
//| If it fails, it probably means a bad CGAL installation.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STL 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| G++ 2.95.2 has problems with member functions implemented outside of
|
||||
//| the class body if this member function has a parameter type that is
|
||||
//| dependant on a template in the template parameter list of the class. A
|
||||
//| workaround would be to implement the member function inline in the class.
|
||||
//| The following definition is set if this error error occurs.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Nested templates in template parameter, such as 'template <
|
||||
//| template <class T> class A>' are not supported by any compiler.
|
||||
//| The following definition is set if they are not supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
|
||||
//| if a compiler does not support the two stage name lookup.
|
||||
//| This is a bug of G++ < 3.4 for example.
|
||||
//| Note that the program fails when the feature works,
|
||||
//| which is different from the other test programs.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler complains about an ambiguity between
|
||||
//| a type and itself when some members are defined out of line. This is
|
||||
//| a Sun CC bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class. This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class.
|
||||
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG
|
||||
//| is the return type of the member template.SunPro 5.5 should be OK with
|
||||
//| this code.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler is Sun's compiler and it uses the
|
||||
//| old Rogue Wave STL.
|
||||
//| The workarounds consist in faking iterator_traits and using a wrapper
|
||||
//| to reverse_iterator
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_SUNPRO_RWSTD 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder.
|
||||
//| At least g++ 2.95 and SunPro CC 5.3 have this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder or not use using.
|
||||
//| At least SunPro CC 5.3 has this bug where the typical error message is :
|
||||
//| "Error: The function B<int>::g() has not had a body defined."
|
||||
//| Note that the subtlely is that the error message does not mention
|
||||
//| "Member"...
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class, when there is a typedef of the base class.
|
||||
//| The workaround is to write a forwarder or not use using.
|
||||
//| At least MipsPRO CC 7.4 has this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1).
|
||||
//| nextafter() is part of ISO C99, but not ISO C++98 (hence <math.h> instead of <cmath>).
|
||||
//| CGAL_CFG_NO_NEXTAFTER is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
// Copyright (c) 1996-2004 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// Author(s): the install_cgal script
|
||||
|
||||
// Compiler specific configuration file for CGAL 3.2-I-437
|
||||
// System: i686_CYGWINNT-5.1_CL.EXE-1310
|
||||
// generated by install_cgal 30348
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
|
||||
//| standard C library functions in cctype (isdigit etc.) as macros.
|
||||
//| According to the standard they have to be functions.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not properly parse comma separated
|
||||
//| expressions in a base constructor call. (e.g. g++ 3.3).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_COMMA_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
|
||||
//| crashes with some conversion operators. G++ 3.3.0 is affected by
|
||||
//| this bug (it hits Darwin severely since it is the system compiler).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler wants you to remove the word
|
||||
//| template in some complicated dependent types.
|
||||
//| Any error with the message "Unexpected type name" is likely to be
|
||||
//| related to this bug in sunpro.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs when handling denormal values at
|
||||
//| compile time. At least PGCC 5.1-3 has the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with special features with IEEE 754
|
||||
//| handling, concerning is_valid() and is_finite() testing of infinity and
|
||||
//| nans. The workaround is to use bitfield operations.
|
||||
//| At least VC++, Borland and PGCC have the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_IEEE_754_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler (or assembler or linker) has problems with long names
|
||||
//| CGAL_CFG_LONGNAME_BUG is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_LONGNAME_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match function arguments
|
||||
//| of pointer type correctly, when the return type depends on
|
||||
//| the parameter's type. (e.g. sun C++ 5.3)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have arguments whose type
|
||||
//| depends on the template parameter.
|
||||
//| This bug appears for example on Sunpro 5.3 and 5.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_4 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have one template parameter
|
||||
//| to be passed explicitely when being called.
|
||||
//| This bug appears for example on g++ 3.3 and 3.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_5 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| VC 7.3 does not recognize when an operator in a class
|
||||
//| redefines the operator with the same signature in a base class
|
||||
//| It happens with the regular triangulation.
|
||||
//| No minimal testcase yet
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_MATCHING_BUG_6 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
|
||||
//| if the std::vector class does not have defined template constructors.
|
||||
//| This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
|
||||
//| if the compiler cannot recognize the declaration of a nested
|
||||
//| class as friend.
|
||||
//| Compilers such as the Intel compiler 8.x (for linux or windows),
|
||||
//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++
|
||||
//| standard is a bit vague on this issue, in other words what is referred
|
||||
//| to as "bug" above, may not really be a bug. Hopefully, the next standard
|
||||
//| will resolve this issue.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match a member
|
||||
//| definition to an existing declaration (eg., cl1310 Beta).
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NET2003_MATCHING_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| When template implementation files are not included in the source files,
|
||||
//| a compiler may attempt to find the unincluded template bodies
|
||||
//| automatically. For example, suppose that the following conditions are
|
||||
//| all true.
|
||||
//|
|
||||
//| - template entity ABC::f is declared in file xyz.h
|
||||
//| - an instantiation of ABC::f is required in a compilation
|
||||
//| - no definition of ABC::f appears in the source code processed by the
|
||||
//| compilation
|
||||
//|
|
||||
//| In this case, the compiler may look to see if the source file xyz.n exists,
|
||||
//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is
|
||||
//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The byte order of a machine architecture distinguishes into
|
||||
//| big-endian and little-endian machines.
|
||||
//| The following definition is set if it is a little-endian machine.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_BIG_ENDIAN 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support the operator Koenig
|
||||
//| lookup. That is, it does not search in the namespace of the arguments for
|
||||
//| the function.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know <limits> (g++-2.95)
|
||||
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
|
||||
//| CGAL_CFG_NO_LIMITS is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LIMITS 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know the locale classic
|
||||
//| CGAL_CFG_NO_LOCALE is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LOCALE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Tests if std::cout supports long double IO.
|
||||
//| pgCC 5.2-2 has this bug (only has for double and float).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The long long built-in integral type is not part of the ISO C++ standard,
|
||||
//| but many compilers support it nevertheless since it's part of the ISO
|
||||
//| C standard.
|
||||
//| The following definition is set if it is supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_LONG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not
|
||||
//| put the parts of the standard library inherited from the standard
|
||||
//| C library in namespace std. (only tests for the symbols used in CGAL)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STDC_NAMESPACE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| A basic test for the STL.
|
||||
//| If it fails, it probably means a bad CGAL installation.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STL 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| G++ 2.95.2 has problems with member functions implemented outside of
|
||||
//| the class body if this member function has a parameter type that is
|
||||
//| dependant on a template in the template parameter list of the class. A
|
||||
//| workaround would be to implement the member function inline in the class.
|
||||
//| The following definition is set if this error error occurs.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Nested templates in template parameter, such as 'template <
|
||||
//| template <class T> class A>' are not supported by any compiler.
|
||||
//| The following definition is set if they are not supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
|
||||
//| if a compiler does not support the two stage name lookup.
|
||||
//| This is a bug of G++ < 3.4 for example.
|
||||
//| Note that the program fails when the feature works,
|
||||
//| which is different from the other test programs.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler complains about an ambiguity between
|
||||
//| a type and itself when some members are defined out of line. This is
|
||||
//| a Sun CC bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class. This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class.
|
||||
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG
|
||||
//| is the return type of the member template.SunPro 5.5 should be OK with
|
||||
//| this code.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler is Sun's compiler and it uses the
|
||||
//| old Rogue Wave STL.
|
||||
//| The workarounds consist in faking iterator_traits and using a wrapper
|
||||
//| to reverse_iterator
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_SUNPRO_RWSTD 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder.
|
||||
//| At least g++ 2.95 and SunPro CC 5.3 have this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder or not use using.
|
||||
//| At least SunPro CC 5.3 has this bug where the typical error message is :
|
||||
//| "Error: The function B<int>::g() has not had a body defined."
|
||||
//| Note that the subtlely is that the error message does not mention
|
||||
//| "Member"...
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class, when there is a typedef of the base class.
|
||||
//| The workaround is to write a forwarder or not use using.
|
||||
//| At least MipsPRO CC 7.4 has this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know nextafter() (or only knows _nextafter as VC++ 7.1).
|
||||
//| nextafter() is part of ISO C99, but not ISO C++98 (hence <math.h> instead of <cmath>).
|
||||
//| CGAL_CFG_NO_NEXTAFTER is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_NEXTAFTER
|
||||
|
|
@ -1,42 +1,42 @@
|
|||
// Copyright (c) 1997-2002 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL: svn+ssh://CGAL/svn/cgal/trunk/wininst/include/CGAL/config/msvc7/CGAL/compiler_config.h $
|
||||
// $Id: compiler_config.h 31170 2006-05-18 10:01:03Z afabri $
|
||||
//
|
||||
//
|
||||
// Author(s) : Radu Ursu
|
||||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# if _MSC_VER < 1310
|
||||
# error Unsupported version of VC++
|
||||
# else
|
||||
# ifdef __ICL
|
||||
# include "CGAL/icl_8_1.h"
|
||||
# else
|
||||
# if _MSC_VER == 1310
|
||||
# include "CGAL/cl_1310.h"
|
||||
# else
|
||||
# include "CGAL/cl_1400.h"
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define CGAL_LIB_NAME CGAL
|
||||
# include "CGAL/auto_link.h"
|
||||
#endif
|
||||
// Copyright (c) 1997-2002 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
// Author(s) : Radu Ursu
|
||||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# if _MSC_VER < 1310
|
||||
# error Unsupported version of VC++
|
||||
# else
|
||||
# ifdef __ICL
|
||||
# include "CGAL/icl_8_1.h"
|
||||
# else
|
||||
# if _MSC_VER == 1310
|
||||
# include "CGAL/cl_1310.h"
|
||||
# else
|
||||
# include "CGAL/cl_1400.h"
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define CGAL_LIB_NAME CGAL
|
||||
# include "CGAL/auto_link.h"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,279 +1,279 @@
|
|||
// Copyright (c) 1996-2004 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// Author(s): the install_cgal script
|
||||
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
|
||||
//| standard C library functions in cctype (isdigit etc.) as macros.
|
||||
//| According to the standard they have to be functions.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not properly parse comma separated
|
||||
//| expressions in a base constructor call. (e.g. g++ 3.3).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_COMMA_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
|
||||
//| crashes with some conversion operators. G++ 3.3.0 is affected by
|
||||
//| this bug (it hits Darwin severely since it is the system compiler).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler wants you to remove the word
|
||||
//| template in some complicated dependent types.
|
||||
//| Any error with the message "Unexpected type name" is likely to be
|
||||
//| related to this bug in sunpro.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs when handling denormal values at
|
||||
//| compile time. At least PGCC 5.1-3 has the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with special features with IEEE 754
|
||||
//| handling, concerning is_valid() and is_finite() testing of infinity and
|
||||
//| nans. The workaround is to use bitfield operations.
|
||||
//| At least VC++, Borland and PGCC have the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_IEEE_754_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler (or assembler or linker) has problems with long names
|
||||
//| CGAL_CFG_LONGNAME_BUG is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_LONGNAME_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match function arguments
|
||||
//| of pointer type correctly, when the return type depends on
|
||||
//| the parameter's type. (e.g. sun C++ 5.3)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have arguments whose type
|
||||
//| depends on the template parameter.
|
||||
//| This bug appears for example on Sunpro 5.3 and 5.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_4 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have one template parameter
|
||||
//| to be passed explicitely when being called.
|
||||
//| This bug appears for example on g++ 3.3 and 3.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_MATCHING_BUG_5 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| VC 7.3 does not recognize when an operator in a class
|
||||
//| redefines the operator with the same signature in a base class
|
||||
//| It happens with the regular triangulation.
|
||||
//| No minimal testcase yet
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_6 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
|
||||
//| if the std::vector class does not have defined template constructors.
|
||||
//| This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
|
||||
//| if the compiler cannot recognize the declaration of a nested
|
||||
//| class as friend.
|
||||
//| Compilers such as the Intel compiler 8.x (for linux or windows),
|
||||
//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++
|
||||
//| standard is a bit vague on this issue, in other words what is referred
|
||||
//| to as "bug" above, may not really be a bug. Hopefully, the next standard
|
||||
//| will resolve this issue.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match a member
|
||||
//| definition to an existing declaration (eg., cl1310 Beta).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NET2003_MATCHING_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| When template implementation files are not included in the source files,
|
||||
//| a compiler may attempt to find the unincluded template bodies
|
||||
//| automatically. For example, suppose that the following conditions are
|
||||
//| all true.
|
||||
//|
|
||||
//| - template entity ABC::f is declared in file xyz.h
|
||||
//| - an instantiation of ABC::f is required in a compilation
|
||||
//| - no definition of ABC::f appears in the source code processed by the
|
||||
//| compilation
|
||||
//|
|
||||
//| In this case, the compiler may look to see if the source file xyz.n exists,
|
||||
//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is
|
||||
//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The byte order of a machine architecture distinguishes into
|
||||
//| big-endian and little-endian machines.
|
||||
//| The following definition is set if it is a little-endian machine.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_BIG_ENDIAN 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support the operator Koenig
|
||||
//| lookup. That is, it does not search in the namespace of the arguments for
|
||||
//| the function.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know <limits> (g++-2.95)
|
||||
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
|
||||
//| CGAL_CFG_NO_LIMITS is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LIMITS 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know the locale classic
|
||||
//| CGAL_CFG_NO_LOCALE is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LOCALE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Tests if std::cout supports long double IO.
|
||||
//| pgCC 5.2-2 has this bug (only has for double and float).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The long long built-in integral type is not part of the ISO C++ standard,
|
||||
//| but many compilers support it nevertheless since it's part of the ISO
|
||||
//| C standard.
|
||||
//| The following definition is set if it is supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_LONG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not
|
||||
//| put the parts of the standard library inherited from the standard
|
||||
//| C library in namespace std. (only tests for the symbols used in CGAL)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STDC_NAMESPACE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| A basic test for the STL.
|
||||
//| If it fails, it probably means a bad CGAL installation.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STL 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| G++ 2.95.2 has problems with member functions implemented outside of
|
||||
//| the class body if this member function has a parameter type that is
|
||||
//| dependant on a template in the template parameter list of the class. A
|
||||
//| workaround would be to implement the member function inline in the class.
|
||||
//| The following definition is set if this error error occurs.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Nested templates in template parameter, such as 'template <
|
||||
//| template <class T> class A>' are not supported by any compiler.
|
||||
//| The following definition is set if they are not supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
|
||||
//| if a compiler does not support the two stage name lookup.
|
||||
//| This is a bug of G++ < 3.4 for example.
|
||||
//| Note that the program fails when the feature works,
|
||||
//| which is different from the other test programs.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler complains about an ambiguity between
|
||||
//| a type and itself when some members are defined out of line. This is
|
||||
//| a Sun CC bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class. This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class.
|
||||
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG
|
||||
//| is the return type of the member template.SunPro 5.5 should be OK with
|
||||
//| this code.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler is Sun's compiler and it uses the
|
||||
//| old Rogue Wave STL.
|
||||
//| The workarounds consist in faking iterator_traits and using a wrapper
|
||||
//| to reverse_iterator
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_SUNPRO_RWSTD 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder.
|
||||
//| At least g++ 2.95 and SunPro CC 5.3 have this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder or not use using.
|
||||
//| At least SunPro CC 5.3 has this bug where the typical error message is :
|
||||
//| "Error: The function B<int>::g() has not had a body defined."
|
||||
//| Note that the subtlely is that the error message does not mention
|
||||
//| "Member"...
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class, when there is a typedef of the base class.
|
||||
//| The workaround is to write a forwarder or not use using.
|
||||
//| At least MipsPRO CC 7.4 has this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
|
||||
// Copyright (c) 1996-2004 Utrecht University (The Netherlands),
|
||||
// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),
|
||||
// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg
|
||||
// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),
|
||||
// and Tel-Aviv University (Israel). All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// Author(s): the install_cgal script
|
||||
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CCTYPE_MACRO_BUG is set, if a compiler defines the
|
||||
//| standard C library functions in cctype (isdigit etc.) as macros.
|
||||
//| According to the standard they have to be functions.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CCTYPE_MACRO_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not properly parse comma separated
|
||||
//| expressions in a base constructor call. (e.g. g++ 3.3).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_COMMA_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_CONVERSION_OPERATOR_BUG is set, if a compiler
|
||||
//| crashes with some conversion operators. G++ 3.3.0 is affected by
|
||||
//| this bug (it hits Darwin severely since it is the system compiler).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_CONVERSION_OPERATOR_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler wants you to remove the word
|
||||
//| template in some complicated dependent types.
|
||||
//| Any error with the message "Unexpected type name" is likely to be
|
||||
//| related to this bug in sunpro.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs when handling denormal values at
|
||||
//| compile time. At least PGCC 5.1-3 has the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_DENORMALS_COMPILE_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with special features with IEEE 754
|
||||
//| handling, concerning is_valid() and is_finite() testing of infinity and
|
||||
//| nans. The workaround is to use bitfield operations.
|
||||
//| At least VC++, Borland and PGCC have the bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_IEEE_754_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler (or assembler or linker) has problems with long names
|
||||
//| CGAL_CFG_LONGNAME_BUG is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_LONGNAME_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match function arguments
|
||||
//| of pointer type correctly, when the return type depends on
|
||||
//| the parameter's type. (e.g. sun C++ 5.3)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_3 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have arguments whose type
|
||||
//| depends on the template parameter.
|
||||
//| This bug appears for example on Sunpro 5.3 and 5.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_4 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if a compiler cannot distinguish the signature
|
||||
//| of overloaded function templates, which have one template parameter
|
||||
//| to be passed explicitely when being called.
|
||||
//| This bug appears for example on g++ 3.3 and 3.4.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_MATCHING_BUG_5 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| VC 7.3 does not recognize when an operator in a class
|
||||
//| redefines the operator with the same signature in a base class
|
||||
//| It happens with the regular triangulation.
|
||||
//| No minimal testcase yet
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MATCHING_BUG_6 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG is set,
|
||||
//| if the std::vector class does not have defined template constructors.
|
||||
//| This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.C is set
|
||||
//| if the compiler cannot recognize the declaration of a nested
|
||||
//| class as friend.
|
||||
//| Compilers such as the Intel compiler 8.x (for linux or windows),
|
||||
//| MSVC 7.1 or pgCC have this "bug". It should be noted that the C++
|
||||
//| standard is a bit vague on this issue, in other words what is referred
|
||||
//| to as "bug" above, may not really be a bug. Hopefully, the next standard
|
||||
//| will resolve this issue.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set, if the compiler does not match a member
|
||||
//| definition to an existing declaration (eg., cl1310 Beta).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NET2003_MATCHING_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| When template implementation files are not included in the source files,
|
||||
//| a compiler may attempt to find the unincluded template bodies
|
||||
//| automatically. For example, suppose that the following conditions are
|
||||
//| all true.
|
||||
//|
|
||||
//| - template entity ABC::f is declared in file xyz.h
|
||||
//| - an instantiation of ABC::f is required in a compilation
|
||||
//| - no definition of ABC::f appears in the source code processed by the
|
||||
//| compilation
|
||||
//|
|
||||
//| In this case, the compiler may look to see if the source file xyz.n exists,
|
||||
//| where n is .c, .C, .cpp, .CPP, .cxx, .CXX, or .cc. If this feature is
|
||||
//| missing, the flag CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_AUTOMATIC_TEMPLATE_INCLUSION 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The byte order of a machine architecture distinguishes into
|
||||
//| big-endian and little-endian machines.
|
||||
//| The following definition is set if it is a little-endian machine.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_BIG_ENDIAN 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support the operator Koenig
|
||||
//| lookup. That is, it does not search in the namespace of the arguments for
|
||||
//| the function.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_KOENIG_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know <limits> (g++-2.95)
|
||||
//| or has a bug in the implementation (Sun CC 5.4, MipsPro CC)
|
||||
//| CGAL_CFG_NO_LIMITS is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LIMITS 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| If a compiler doesn't know the locale classic
|
||||
//| CGAL_CFG_NO_LOCALE is set.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LOCALE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Tests if std::cout supports long double IO.
|
||||
//| pgCC 5.2-2 has this bug (only has for double and float).
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_DOUBLE_IO 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The long long built-in integral type is not part of the ISO C++ standard,
|
||||
//| but many compilers support it nevertheless since it's part of the ISO
|
||||
//| C standard.
|
||||
//| The following definition is set if it is supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_LONG_LONG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_STDC_NAMESPACE is set, if a compiler does not
|
||||
//| put the parts of the standard library inherited from the standard
|
||||
//| C library in namespace std. (only tests for the symbols used in CGAL)
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STDC_NAMESPACE 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| A basic test for the STL.
|
||||
//| If it fails, it probably means a bad CGAL installation.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_STL 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| G++ 2.95.2 has problems with member functions implemented outside of
|
||||
//| the class body if this member function has a parameter type that is
|
||||
//| dependant on a template in the template parameter list of the class. A
|
||||
//| workaround would be to implement the member function inline in the class.
|
||||
//| The following definition is set if this error error occurs.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_DEPENDING_FUNCTION_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| Nested templates in template parameter, such as 'template <
|
||||
//| template <class T> class A>' are not supported by any compiler.
|
||||
//| The following definition is set if they are not supported.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_NO_TMPL_IN_TMPL_PARAM 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP is set,
|
||||
//| if a compiler does not support the two stage name lookup.
|
||||
//| This is a bug of G++ < 3.4 for example.
|
||||
//| Note that the program fails when the feature works,
|
||||
//| which is different from the other test programs.
|
||||
//+--------------------------------------------------------------------------
|
||||
#define CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler complains about an ambiguity between
|
||||
//| a type and itself when some members are defined out of line. This is
|
||||
//| a Sun CC bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class. This is a feature of SunPro 5.5.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| The flag CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 is set,
|
||||
//| if a compiler does not support the definition of member templates
|
||||
//| out of line, i.e. outside class scope. The solution is to put the
|
||||
//| definition inside the class.
|
||||
//| The difference with CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG
|
||||
//| is the return type of the member template.SunPro 5.5 should be OK with
|
||||
//| this code.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler is Sun's compiler and it uses the
|
||||
//| old Rogue Wave STL.
|
||||
//| The workarounds consist in faking iterator_traits and using a wrapper
|
||||
//| to reverse_iterator
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_SUNPRO_RWSTD 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler doesn't support "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder.
|
||||
//| At least g++ 2.95 and SunPro CC 5.3 have this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class. The workaround is to write a forwarder or not use using.
|
||||
//| At least SunPro CC 5.3 has this bug where the typical error message is :
|
||||
//| "Error: The function B<int>::g() has not had a body defined."
|
||||
//| Note that the subtlely is that the error message does not mention
|
||||
//| "Member"...
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_2 1
|
||||
|
||||
//+--------------------------------------------------------------------------
|
||||
//| This flag is set if the compiler bugs with some "using Base::Member;" in
|
||||
//| a derived class, when there is a typedef of the base class.
|
||||
//| The workaround is to write a forwarder or not use using.
|
||||
//| At least MipsPRO CC 7.4 has this bug.
|
||||
//+--------------------------------------------------------------------------
|
||||
//#define CGAL_CFG_USING_BASE_MEMBER_BUG_3 1
|
||||
|
|
|
|||
Loading…
Reference in New Issue