mirror of https://github.com/CGAL/cgal
Merge branch 'releases/CGAL-4.14-branch' into releases/CGAL-5.0-branch
This commit is contained in:
commit
2e8a59d570
|
|
@ -171,9 +171,11 @@ class AABB_tree;
|
|||
/// \sa `AABBPrimitiveWithSharedData`
|
||||
|
||||
template<typename GeomTraits, typename AABBPrimitive, typename BboxMap = Default>
|
||||
class AABB_traits:
|
||||
public internal::AABB_tree::AABB_traits_base<AABBPrimitive>,
|
||||
class AABB_traits
|
||||
#ifndef DOXYGEN_RUNNING
|
||||
: public internal::AABB_tree::AABB_traits_base<AABBPrimitive>,
|
||||
public internal::AABB_tree::AABB_traits_base_2<GeomTraits>
|
||||
#endif
|
||||
{
|
||||
typedef typename CGAL::Object Object;
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ if(NOT POLICY CMP0064)
|
|||
# Add a fake function to avoid CMake errors
|
||||
function(cgal_add_compilation_test)
|
||||
endfunction()
|
||||
# Add a fake function to avoid CMake errors
|
||||
function(cgal_setup_test_properties)
|
||||
endfunction()
|
||||
|
||||
# Then return, to exit the file
|
||||
return()
|
||||
|
|
|
|||
|
|
@ -551,7 +551,7 @@ using std::max;
|
|||
#define CGAL_NORETURN [[noreturn]]
|
||||
|
||||
// Macro to specify [[no_unique_address]] if supported
|
||||
#if __has_cpp_attribute(no_unique_address)
|
||||
#if CGAL_CXX11 && __has_cpp_attribute(no_unique_address)
|
||||
# define CGAL_NO_UNIQUE_ADDRESS [[no_unique_address]]
|
||||
#else
|
||||
# define CGAL_NO_UNIQUE_ADDRESS
|
||||
|
|
|
|||
|
|
@ -79,6 +79,15 @@ public:
|
|||
: p1(pp1), p2(pp2), cmp(c)
|
||||
{ }
|
||||
|
||||
template <typename F>
|
||||
struct result;
|
||||
|
||||
template <typename F, typename A1>
|
||||
struct result<F(A1)> {
|
||||
typedef typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(const A1&)>::type>::result_type type;
|
||||
};
|
||||
|
||||
template <class A1>
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(const A1&)>::type>::result_type
|
||||
|
|
@ -104,6 +113,12 @@ public:
|
|||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||
}
|
||||
|
||||
template <typename F, typename A1, typename A2>
|
||||
struct result<F(A1, A2)> {
|
||||
typedef typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(const A1&, const A2&)>::type>::result_type type;
|
||||
};
|
||||
|
||||
template <class A1, class A2>
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(const A1&, const A2&)>::type>::result_type
|
||||
|
|
@ -131,6 +146,12 @@ public:
|
|||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||
}
|
||||
|
||||
template <typename F, typename A1, typename A2, typename A3>
|
||||
struct result<F(A1, A2, A3)> {
|
||||
typedef typename Pairify<typename CGAL::cpp11::result_of<P1(const A1&, const A2&, const A3&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(const A1&, const A2&, const A3&)>::type>::result_type type;
|
||||
};
|
||||
|
||||
template <class A1, class A2, class A3>
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||
const A1&, const A2&, const A3&)>::type,
|
||||
|
|
@ -162,6 +183,16 @@ public:
|
|||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||
}
|
||||
|
||||
template <typename F, typename A1, typename A2, typename A3, typename A4>
|
||||
struct result<F(A1, A2, A3, A4)> {
|
||||
typedef
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||
const A1&, const A2&, const A3&, const A4&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(
|
||||
const A1&, const A2&, const A3&, const A4&)>::type>::result_type
|
||||
type;
|
||||
};
|
||||
|
||||
template <class A1, class A2, class A3, class A4>
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||
const A1&, const A2&, const A3&, const A4&)>::type,
|
||||
|
|
@ -198,6 +229,16 @@ public:
|
|||
return Pairify<result_type_1, result_type_2>()(res1, res2);
|
||||
}
|
||||
|
||||
template <typename F, typename A1, typename A2, typename A3, typename A4, typename A5>
|
||||
struct result<F(A1, A2, A3, A4, A5)> {
|
||||
typedef
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||
const A1&, const A2&, const A3&, const A4&, const A5&)>::type,
|
||||
typename CGAL::cpp11::result_of<P2(
|
||||
const A1&, const A2&, const A3&, const A4&, const A5&)>::type>::result_type
|
||||
type;
|
||||
};
|
||||
|
||||
template <class A1, class A2, class A3, class A4, class A5>
|
||||
typename Pairify<typename CGAL::cpp11::result_of<P1(
|
||||
const A1&, const A2&, const A3&, const A4&, const A5&)>::type,
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@ template <class Circulator>
|
|||
class Construct_circulator_2
|
||||
{
|
||||
public:
|
||||
typedef Circulator result_type;
|
||||
Circulator operator()(Circulator p1) const { return p1; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,14 @@ public:
|
|||
|
||||
using Base::operator();
|
||||
|
||||
template<typename F>
|
||||
struct result : Base::template result<F> {};
|
||||
|
||||
template<typename F>
|
||||
struct result<F(Point_3)> {
|
||||
typedef const Point_3& type;
|
||||
};
|
||||
|
||||
const Point_3& operator()(const Point_3& p) const { return p; }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,14 @@ public:
|
|||
|
||||
using Base::operator(); // for K::Weighted_point_3 to Point_3
|
||||
|
||||
template<typename F>
|
||||
struct result : Base::template result<F> {};
|
||||
|
||||
template<typename F>
|
||||
struct result<F(Weighted_point_3)> {
|
||||
typedef Point_3 type;
|
||||
};
|
||||
|
||||
Point_3 operator()(const Weighted_point_3& wp) const {
|
||||
return std::make_pair(operator()(wp.first), wp.second /* offset */);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -567,7 +567,7 @@ protected:
|
|||
|
||||
public:
|
||||
template<typename P> // Point or Point_3
|
||||
typename boost::result_of<const Construct_point_3(const P&)>::type
|
||||
typename boost::result_of<Construct_point_3(P)>::type
|
||||
construct_point(const P& p) const
|
||||
{
|
||||
return geom_traits().construct_point_3_object()(p);
|
||||
|
|
|
|||
Loading…
Reference in New Issue