From affaa1932786e5b0ca7c15ed773dbaa672a48acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Tue, 19 Mar 2019 12:10:44 +0100 Subject: [PATCH] remove workaround for non support of variadic template --- AABB_tree/include/CGAL/AABB_traits.h | 31 -- AABB_tree/include/CGAL/AABB_tree.h | 445 ------------------ .../internal/AABB_tree/AABB_search_tree.h | 2 - 3 files changed, 478 deletions(-) diff --git a/AABB_tree/include/CGAL/AABB_traits.h b/AABB_tree/include/CGAL/AABB_traits.h index a3e20752516..562062a07bf 100644 --- a/AABB_tree/include/CGAL/AABB_traits.h +++ b/AABB_tree/include/CGAL/AABB_traits.h @@ -60,41 +60,10 @@ template struct AABB_traits_base{ typename Primitive::Shared_data m_primitive_data; - #if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template void set_shared_data(T&& ... t){ m_primitive_data=Primitive::construct_shared_data(std::forward(t)...); } - #else - void set_shared_data(){ - m_primitive_data=Primitive::construct_shared_data(); - } - - template - void set_shared_data(T1& t1){ - m_primitive_data=Primitive::construct_shared_data(t1); - } - - template - void set_shared_data(T1& t1, T2& t2){ - m_primitive_data=Primitive::construct_shared_data(t1,t2); - } - - template - void set_shared_data(T1& t1,T2& t2,T3& t3){ - m_primitive_data=Primitive::construct_shared_data(t1,t2,t3); - } - - template - void set_shared_data(T1& t1,T2& t2,T3& t3,T4& t4){ - m_primitive_data=Primitive::construct_shared_data(t1,t2,t3,t4); - } - - template - void set_shared_data(T1& t1,T2& t2,T3& t3,T4& t4,T5& t5){ - m_primitive_data=Primitive::construct_shared_data(t1,t2,t3,t4,t5); - } - #endif const typename Primitive::Shared_data& shared_data() const {return m_primitive_data;} }; diff --git a/AABB_tree/include/CGAL/AABB_tree.h b/AABB_tree/include/CGAL/AABB_tree.h index 50600ec6944..e362bfbd969 100644 --- a/AABB_tree/include/CGAL/AABB_tree.h +++ b/AABB_tree/include/CGAL/AABB_tree.h @@ -126,27 +126,10 @@ namespace CGAL { * @param beyond past-the-end iterator * * It is equivalent to constructing an empty tree and calling `insert(first,last,t...)`. - * For compilers that do not support variadic templates, overloads up to - * 5 template arguments are provided. * The tree stays empty if the memory allocation is not successful. */ - #if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template AABB_tree(InputIterator first, InputIterator beyond,T&& ...); - #else - template - AABB_tree(InputIterator first, InputIterator beyond); - template - AABB_tree(InputIterator first, InputIterator beyond, T1&); - template - AABB_tree(InputIterator first, InputIterator beyond,T1&,T2&); - template - AABB_tree(InputIterator first, InputIterator beyond,T1&,T2&,T3&); - template - AABB_tree(InputIterator first, InputIterator beyond,T1&,T2&,T3&,T4&); - template - AABB_tree(InputIterator first, InputIterator beyond,T1&,T2&,T3&,T4&,T5&); - #endif /// After one or more calls to `insert()` the internal data /// structure of the tree must be reconstructed. This procedure @@ -158,26 +141,10 @@ namespace CGAL { /// data structure. /// A call to `AABBTraits::set_shared_data(t...)` /// is made using the internally stored traits. - /// For compilers that do not support variadic templates, - /// overloads up to 5 template arguments are provided. -#if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template void build(T&& ...); #ifndef DOXYGEN_RUNNING void build(); -#endif -#else - void build(); - template - void build(T1& t1); - template - void build(T1& t1, T2& t2); - template - void build(T1& t1, T2& t2, T3& t3); - template - void build(T1& t1, T2& t2, T3& t3, T4& t4); - template - void build(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5); #endif ///@} @@ -185,25 +152,8 @@ namespace CGAL { ///@{ /// Equivalent to calling `clear()` and then `insert(first,last,t...)`. - /// For compilers that do not support variadic templates, overloads up - /// to 5 template arguments are provided. - #if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond,T&& ...); - #else - template - void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond); - template - void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond, T1&); - template - void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond,T1&,T2&); - template - void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond,T1&,T2&,T3&); - template - void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond,T1&,T2&,T3&,T4&); - template - void rebuild(ConstPrimitiveIterator first, ConstPrimitiveIterator beyond,T1&,T2&,T3&,T4&,T5&); - #endif /// Add a sequence of primitives to the set of primitives of the AABB tree. @@ -212,25 +162,8 @@ namespace CGAL { /// `Primitive(%InputIterator, T...)`. If `Primitive` is a model of the concept /// `AABBPrimitiveWithSharedData`, a call to `AABBTraits::set_shared_data(t...)` /// is made using the internally stored traits. - /// For compilers that do not support variadic templates, - /// overloads up to 5 template arguments are provided. - #if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template void insert(InputIterator first, InputIterator beyond,T&& ...); - #else - template - void insert(InputIterator first, InputIterator beyond); - template - void insert(InputIterator first, InputIterator beyond,T1&); - template - void insert(InputIterator first, InputIterator beyond,T1&, T2&); - template - void insert(InputIterator first, InputIterator beyond,T1&,T2&,T3&); - template - void insert(InputIterator first, InputIterator beyond,T1&,T2&,T3&,T4&); - template - void insert(InputIterator first, InputIterator beyond,T1&,T2&,T3&,T4&,T5&); - #endif /// Adds a primitive to the set of primitives of the tree. inline void insert(const Primitive& p); @@ -274,7 +207,6 @@ namespace CGAL { ///@} private: - #if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template void set_primitive_data_impl(CGAL::Boolean_tag,T ... ){} template @@ -285,64 +217,6 @@ namespace CGAL { void set_shared_data(T&& ...t){ set_primitive_data_impl(CGAL::Boolean_tag::value>(),std::forward(t)...); } - #else - void set_primitive_data_impl(CGAL::Boolean_tag){} - void set_primitive_data_impl(CGAL::Boolean_tag) - {m_traits.set_shared_data();} - void set_shared_data(){ - set_primitive_data_impl(CGAL::Boolean_tag::value>()); - } - - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1){} - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1& t1) - {m_traits.set_shared_data(t1);} - template - void set_shared_data(T1& t1){ - set_primitive_data_impl(Boolean_tag::value>(),t1); - } - - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1,T2){} - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1& t1,T2& t2) - {m_traits.set_shared_data(t1,t2);} - template - void set_shared_data(const T1& t1,const T2& t2){ - set_primitive_data_impl(Boolean_tag::value>(),t1,t2); - } - - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1,T2,T3){} - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1& t1,T2& t2,T3& t3) - {m_traits.set_shared_data(t1,t2,t3);} - template - void set_shared_data(T1& t1,T2& t2,T3& t3){ - set_primitive_data_impl(Boolean_tag::value>(),t1,t2,t3); - } - - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1,T2,T3,T4){} - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1& t1,T2& t2,T3& t3,T4& t4) - {m_traits.set_shared_data(t1,t2,t3,t4);} - template - void set_shared_data(T1& t1,T2& t2,T3& t3,T4& t4){ - set_primitive_data_impl(Boolean_tag::value>(),t1,t2,t3,t4); - } - - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1,T2,T3,T4,T5){} - template - void set_primitive_data_impl(CGAL::Boolean_tag,T1& t1,T2& t2,T3& t3,T4& t4,T5& t5) - {m_traits.set_shared_data(t1,t2,t3,t4,t5);} - template - void set_shared_data(T1& t1,T2& t2,T3& t3,T4& t4,T5& t5){ - set_primitive_data_impl(Boolean_tag::value>(),t1,t2,t3,t4,t5); - } - #endif bool build_kd_tree() const; template @@ -744,7 +618,6 @@ public: , m_need_build(false) {} - #if !defined(CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES) && !defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE) template template AABB_tree::AABB_tree(ConstPrimitiveIterator first, @@ -800,324 +673,6 @@ public: set_shared_data(std::forward(t)...); build(); } - #else - //=============constructor====================== - template - template - AABB_tree::AABB_tree(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond) - : m_traits() - , m_primitives() - , m_p_root_node(NULL) - , m_p_search_tree(NULL) - , m_search_tree_constructed(false) - , m_default_search_tree_constructed(false) - , m_need_build(false) - { - // Insert each primitive into tree - insert(first, beyond); - } - - template - template - AABB_tree::AABB_tree(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1) - : m_traits() - , m_primitives() - , m_p_root_node(NULL) - , m_p_search_tree(NULL) - , m_search_tree_constructed(false) - , m_default_search_tree_constructed(false) - , m_need_build(false) - { - // Insert each primitive into tree - insert(first, beyond,t1); - } - - template - template - AABB_tree::AABB_tree(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2) - : m_traits() - , m_primitives() - , m_p_root_node(NULL) - , m_p_search_tree(NULL) - , m_search_tree_constructed(false) - , m_default_search_tree_constructed(false) - , m_need_build(false) - { - // Insert each primitive into tree - insert(first, beyond,t1,t2); - } - - template - template - AABB_tree::AABB_tree(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3) - : m_traits() - , m_primitives() - , m_p_root_node(NULL) - , m_p_search_tree(NULL) - , m_search_tree_constructed(false) - , m_default_search_tree_constructed(false) - , m_need_build(false) - { - // Insert each primitive into tree - insert(first, beyond,t1,t2,t3); - } - - template - template - AABB_tree::AABB_tree(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3,T4& t4) - : m_traits() - , m_primitives() - , m_p_root_node(NULL) - , m_p_search_tree(NULL) - , m_search_tree_constructed(false) - , m_default_search_tree_constructed(false) - , m_need_build(false) - { - // Insert each primitive into tree - insert(first, beyond,t1,t2,t3,t4); - } - - template - template - AABB_tree::AABB_tree(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3,T4& t4,T5& t5) - : m_traits() - , m_primitives() - , m_p_root_node(NULL) - , m_p_search_tree(NULL) - , m_search_tree_constructed(false) - , m_default_search_tree_constructed(false) - , m_need_build(false) - { - // Insert each primitive into tree - insert(first, beyond,t1,t2,t3,t4,t5); - } - //=============insert====================== - template - template - void AABB_tree::insert(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond) - { - set_shared_data(); - while(first != beyond) - { - m_primitives.push_back(Primitive(first)); - ++first; - } - m_need_build = true; - } - - template - template - void AABB_tree::insert(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1) - { - set_shared_data(t1); - while(first != beyond) - { - m_primitives.push_back(Primitive(first,t1)); - ++first; - } - m_need_build = true; - } - - template - template - void AABB_tree::insert(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1, T2& t2) - { - set_shared_data(t1,t2); - while(first != beyond) - { - m_primitives.push_back(Primitive(first,t1,t2)); - ++first; - } - m_need_build = true; - } - - template - template - void AABB_tree::insert(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3) - { - set_shared_data(t1,t2,t3); - while(first != beyond) - { - m_primitives.push_back(Primitive(first,t1,t2,t3)); - ++first; - } - m_need_build = true; - } - - template - template - void AABB_tree::insert(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3,T4& t4) - { - set_shared_data(t1,t2,t3,t4); - while(first != beyond) - { - m_primitives.push_back(Primitive(first,t1,t2,t3,t4)); - ++first; - } - m_need_build = true; - } - - template - template - void AABB_tree::insert(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3,T4& t4,T5& t5) - { - set_shared_data(t1,t2,t3,t4,t5); - while(first != beyond) - { - m_primitives.push_back(Primitive(first,t1,t2,t3,t4,t5)); - ++first; - } - m_need_build = true; - } - - //=============rebuild====================== - template - template - void AABB_tree::rebuild(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond) - { - // cleanup current tree and internal KD tree - clear(); - - // inserts primitives - insert(first, beyond); - - build(); - } - - template - template - void AABB_tree::rebuild(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1) - { - // cleanup current tree and internal KD tree - clear(); - - // inserts primitives - insert(first, beyond,t1); - - build(); - } - - template - template - void AABB_tree::rebuild(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1, T2& t2) - { - // cleanup current tree and internal KD tree - clear(); - - // inserts primitives - insert(first, beyond,t1,t2); - - build(); - } - - template - template - void AABB_tree::rebuild(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3) - { - // cleanup current tree and internal KD tree - clear(); - - // inserts primitives - insert(first, beyond,t1,t2,t3); - - build(); - } - - template - template - void AABB_tree::rebuild(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3,T4& t4) - { - // cleanup current tree and internal KD tree - clear(); - - // inserts primitives - insert(first, beyond,t1,t2,t3,t4); - - build(); - } - - template - template - void AABB_tree::rebuild(ConstPrimitiveIterator first, - ConstPrimitiveIterator beyond, - T1& t1,T2& t2,T3& t3,T4& t4,T5& t5) - { - // cleanup current tree and internal KD tree - clear(); - - // inserts primitives - insert(first, beyond,t1,t2,t3,t4,t5); - - build(); - } - //overloads calling set_shared_data() - template - template - void AABB_tree::build(T1& t1) - { - set_shared_data(t1); - build(); - } - template - template - void AABB_tree::build(T1& t1, T2& t2) - { - set_shared_data(t1, t2); - build(); - } - template - template - void AABB_tree::build(T1& t1, T2& t2, T3& t3) - { - set_shared_data(t1, t2, t3); - build(); - } - template - template - void AABB_tree::build(T1& t1, T2& t2, T3& t3, T4& t4) - { - set_shared_data(t1, t2, t3, t4); - build(); - } - template - template - void AABB_tree::build(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5) - { - set_shared_data(t1, t2, t3, t4, t5); - build(); - } -#endif template void AABB_tree::insert(const Primitive& p) diff --git a/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h b/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h index b02bb264fb2..214a8d2644a 100644 --- a/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h +++ b/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h @@ -65,9 +65,7 @@ namespace CGAL m_id = rhs.m_id; } -#ifndef CGAL_CFG_NO_CPP0X_DELETED_AND_DEFAULT_FUNCTIONS Decorated_point& operator=(const Decorated_point&)=default; -#endif private: Id m_id;