From f2a1b260a4414bb9acbebdad491d4b9d049552d7 Mon Sep 17 00:00:00 2001 From: Sylvain Pion Date: Wed, 8 Aug 2007 14:50:01 +0000 Subject: [PATCH] Remove obsolete config flags CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG and CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2. --- .../include/CGAL/Filtered_predicate.h | 232 +----------------- ...TOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG.cpp | 56 ----- ...FLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2.cpp | 53 ---- Nef_2/include/CGAL/Nef_2/PM_decorator.h | 59 +---- .../CGAL/Unfiltered_predicate_adaptor.h | 66 +---- 5 files changed, 22 insertions(+), 444 deletions(-) delete mode 100644 Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG.cpp delete mode 100644 Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2.cpp diff --git a/Filtered_kernel/include/CGAL/Filtered_predicate.h b/Filtered_kernel/include/CGAL/Filtered_predicate.h index 4ab4db51d29..03dae82a890 100644 --- a/Filtered_kernel/include/CGAL/Filtered_predicate.h +++ b/Filtered_kernel/include/CGAL/Filtered_predicate.h @@ -89,265 +89,61 @@ public: #ifdef CGAL_HAS_VARIADIC_TEMPLATES template result_type - operator()(const Args&... args) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(args)...); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(args)...); - } -#endif + operator()(const Args&... args) const; #else template result_type - operator()(const A1 &a1) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1)); - } -#endif + operator()(const A1 &a1) const; template result_type - operator()(const A1 &a1, const A2 &a2) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2)); - } -#endif + operator()(const A1 &a1, const A2 &a2) const; template result_type - operator()(const A1 &a1, const A2 &a2, const A3 &a3) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3)); - } -#endif + operator()(const A1 &a1, const A2 &a2, const A3 &a3) const; template result_type - operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4)); - } -#endif + operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4), c2a(a5)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4), c2e(a5)); - } -#endif + const A5 &a5) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5, const A6 &a6) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4), c2a(a5), c2a(a6)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4), c2e(a5), c2e(a6)); - } -#endif + const A5 &a5, const A6 &a6) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5, const A6 &a6, const A7 &a7) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4), - c2a(a5), c2a(a6), c2a(a7)); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(CGAL_PRETTY_FUNCTION)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4), c2e(a5), c2e(a6), c2e(a7)); - } -#endif + const A5 &a5, const A6 &a6, const A7 &a7) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(__PRETTY_FUNCTION__)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4), - c2a(a5), c2a(a6), c2a(a7), c2a(a8) ); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(__PRETTY_FUNCTION__)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4), - c2e(a5), c2e(a6), c2e(a7), c2e(a8) ); - } -#endif + const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, - const A9 &a9) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(__PRETTY_FUNCTION__)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4), - c2a(a5), c2a(a6), c2a(a7), c2a(a8), c2a(a9) ); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(__PRETTY_FUNCTION__)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4), - c2e(a5), c2e(a6), c2e(a7), c2e(a8), c2e(a9) ); - } -#endif + const A9 &a9) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, - const A9 &a9, const A10 &a10) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - try - { - CGAL_PROFILER(std::string("calls to : ") + std::string(__PRETTY_FUNCTION__)); - Protect_FPU_rounding P; - Ares res = ap(c2a(a1), c2a(a2), c2a(a3), c2a(a4), - c2a(a5), c2a(a6), c2a(a7), c2a(a8), c2a(a9), c2a(a10) ); - if (! is_indeterminate(res)) - return res; - } - catch (Interval_nt_advanced::unsafe_comparison) {} - CGAL_PROFILER(std::string("failures of : ") + std::string(__PRETTY_FUNCTION__)); - Protect_FPU_rounding P(CGAL_FE_TONEAREST); - return ep(c2e(a1), c2e(a2), c2e(a3), c2e(a4), - c2e(a5), c2e(a6), c2e(a7), c2e(a8), c2e(a9), c2e(a10) ); - } -#endif + const A9 &a9, const A10 &a10) const; + // Idem for more than 10 arguments. Do it on demand. #endif @@ -374,9 +170,9 @@ Filtered_predicate:: Protect_FPU_rounding P(CGAL_FE_TONEAREST); return ep(c2e(args)...); } + #else -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG template template typename Filtered_predicate::result_type @@ -598,8 +394,6 @@ Filtered_predicate:: #endif -#endif - CGAL_END_NAMESPACE #endif // CGAL_FILTERED_PREDICATE_H diff --git a/Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG.cpp b/Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG.cpp deleted file mode 100644 index edacd38a45f..00000000000 --- a/Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// 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) : Radu Ursu - -// --------------------------------------------------------------------- -// A short test program to evaluate a C++ compiler. -// This program is used by install_cgal. -// The following documentation will be pasted in the generated configfile. -// --------------------------------------------------------------------- - -//| 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. - -template -class B { -public: - typedef typename A::D Res; - - template - Res fct(C *i); -}; - -template -template //syntax error -typename B::Res -B::fct(C *i) -{ - typedef typename B::Res R; - return R(); -} - -int main() -{ - return 0; -} diff --git a/Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2.cpp b/Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2.cpp deleted file mode 100644 index 9fe537ad781..00000000000 --- a/Installation/config/testfiles/CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG_2.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 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. -// -// 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) : Laurent Rineau - -// --------------------------------------------------------------------- -// A short test program to evaluate a C++ compiler. -// This program is used by install_cgal. -// The following documentation will be pasted in the generated configfile. -// --------------------------------------------------------------------- - -//| 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. - -template -class B { -public: - template - void fct(C *i); -}; - -template -template -void -B::fct(C *i){ -} - -int main(){ - return 0; -} diff --git a/Nef_2/include/CGAL/Nef_2/PM_decorator.h b/Nef_2/include/CGAL/Nef_2/PM_decorator.h index 47f639ec349..4dfa35329d6 100644 --- a/Nef_2/include/CGAL/Nef_2/PM_decorator.h +++ b/Nef_2/include/CGAL/Nef_2/PM_decorator.h @@ -702,8 +702,6 @@ void clone(const Plane_map& H) const; \precond |H.check_integrity_and_topological_planarity()| and |P| is empty.}*/ -#if ! defined(CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG) - template void clone_skeleton(const Plane_map& H, const LINKDA& L) const; /*{\Mop clones the skeleton of |H| into |P|. Afterwards |P| is a copy @@ -716,56 +714,6 @@ objects.\\ \precond |H.check_integrity_and_topological_planarity()| and |P| is empty.}*/ -#else - -template -void clone_skeleton(const HDS& H, const LINKDA& L) const -{ - CGAL_assertion(number_of_vertices()==0&& - number_of_halfedges()==0&& - number_of_faces()==0); - - PM_const_decorator DC(H); - CGAL_assertion((DC.check_integrity_and_topological_planarity(),1)); - CGAL::Unique_hash_map Vnew; - CGAL::Unique_hash_map Hnew; - - /* First clone all objects and store correspondance in the two maps.*/ - Vertex_const_iterator vit, vend = H.vertices_end(); - for (vit = H.vertices_begin(); vit!=vend; ++vit) { - Vertex_handle v = this->phds->vertices_push_back(Vertex_base()); - Vnew[vit] = v; - } - Halfedge_const_iterator eit, eend = H.halfedges_end(); - for (eit = H.halfedges_begin(); eit!=eend; ++(++eit)) { - Halfedge_handle e = this->phds->edges_push_back(Halfedge_base(),Halfedge_base()); - Hnew[eit] = e; Hnew[eit->opposite()] = e->opposite(); - } - - /* Now copy topology.*/ - Vertex_iterator vit2, vend2 = vertices_end(); - for (vit = H.vertices_begin(), vit2 = vertices_begin(); - vit2!=vend2; ++vit, ++vit2) { - mark(vit2) = DC.mark(vit); - point(vit2) = DC.point(vit); - if ( !DC.is_isolated(vit) ) - vit2->set_halfedge(Hnew[vit->halfedge()]); - L(vit2,vit); - } - Halfedge_iterator eit2, eend2 = this->phds->halfedges_end(); - for (eit = H.halfedges_begin(), eit2 = halfedges_begin(); - eit2!=eend2; ++eit, ++eit2) { - eit2->set_prev(Hnew[eit->prev()]); - eit2->set_next(Hnew[eit->next()]); - eit2->set_vertex(Vnew[eit->vertex()]); - mark(eit2) = DC.mark(eit); - // eit2->set_face(Face_handle((Face*)&*(eit->face()))); - L(eit2,eit); - // link to face of original - } -} - -#endif void reflecting_inversion() /*{\Xop inverts the topological links corresponding to a reflecting @@ -906,7 +854,6 @@ void PM_decorator::clone(const HDS& H) const CGAL_assertion((this->check_integrity_and_topological_planarity(),1)); } -#if ! defined(CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG) template template @@ -957,10 +904,6 @@ clone_skeleton(const HDS& H, const LINKDA& L) const } } -#endif - - - CGAL_END_NAMESPACE -#endif //CGAL_PM_DECORATOR_H +#endif //CGAL_PM_DECORATOR_H diff --git a/Straight_skeleton_2/include/CGAL/Unfiltered_predicate_adaptor.h b/Straight_skeleton_2/include/CGAL/Unfiltered_predicate_adaptor.h index df5af31a2af..3ea48fedbcb 100644 --- a/Straight_skeleton_2/include/CGAL/Unfiltered_predicate_adaptor.h +++ b/Straight_skeleton_2/include/CGAL/Unfiltered_predicate_adaptor.h @@ -51,89 +51,40 @@ public: template result_type - operator()(const A1 &a1) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1)); - } -#endif + operator()(const A1 &a1) const; template result_type - operator()(const A1 &a1, const A2 &a2) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1, a2)); - } -#endif + operator()(const A1 &a1, const A2 &a2) const; template result_type - operator()(const A1 &a1, const A2 &a2, const A3 &a3) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1, a2, a3)); - } -#endif + operator()(const A1 &a1, const A2 &a2, const A3 &a3) const; template result_type - operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1, a2, a3,a4)); - } -#endif + operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1, a2, a3, a4, a5)); - } -#endif + const A5 &a5) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5, const A6 &a6) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1, a2, a3, a4, a5, a6)); - } -#endif + const A5 &a5, const A6 &a6) const; template result_type operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, - const A5 &a5, const A6 &a6, const A7 &a7) const -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG - ; -#else - { - return static_cast(Certified_approx_predicate(a1, a2, a3, a4, a5, a6, a7)); - } -#endif + const A5 &a5, const A6 &a6, const A7 &a7) const; // Idem for more than 7 arguments. Do it on demand. }; -#ifndef CGAL_CFG_OUTOFLINE_TEMPLATE_MEMBER_DEFINITION_BUG + template template typename Unfiltered_predicate_adaptor::result_type @@ -189,7 +140,6 @@ Unfiltered_predicate_adaptor:: { return static_cast(Certified_approx_predicate(a1, a2, a3, a4, a5, a6)); } -#endif CGAL_END_NAMESPACE