Remove hack for Intel compiler: it didn't work, and version 15 fixed the bug.

This commit is contained in:
Marc Glisse 2014-12-17 12:25:30 +01:00
parent 58d504f744
commit ae4084948e
3 changed files with 7 additions and 8 deletions

View File

@ -24,6 +24,7 @@
#include <CGAL/tuple.h> #include <CGAL/tuple.h>
#include <CGAL/typeset.h> #include <CGAL/typeset.h>
#include <CGAL/Object.h> #include <CGAL/Object.h>
#include <CGAL/Origin.h>
#include <CGAL/NT_converter.h> #include <CGAL/NT_converter.h>
#include <CGAL/NewKernel_d/functor_tags.h> #include <CGAL/NewKernel_d/functor_tags.h>
#include <CGAL/Kernel/mpl.h> #include <CGAL/Kernel/mpl.h>

View File

@ -22,6 +22,7 @@
#include <CGAL/NewKernel_d/utils.h> #include <CGAL/NewKernel_d/utils.h>
#include <CGAL/NewKernel_d/functor_tags.h> #include <CGAL/NewKernel_d/functor_tags.h>
#include <CGAL/Kernel/mpl.h> // First_if_different #include <CGAL/Kernel/mpl.h> // First_if_different
#include <CGAL/Dimension.h>
namespace CGAL { namespace CGAL {
template <class Tag_, class K1, class K2> struct KO_converter; template <class Tag_, class K1, class K2> struct KO_converter;
//TODO: It would probably be better if this was a Misc Functor in K1. //TODO: It would probably be better if this was a Misc Functor in K1.

View File

@ -98,7 +98,11 @@ namespace CGAL {
struct Provides_type_i <Kernel, Tg, true> struct Provides_type_i <Kernel, Tg, true>
: Has_type_different_from<typename Kernel::template Type<Tg>, Null_type> {}; : Has_type_different_from<typename Kernel::template Type<Tg>, Null_type> {};
//// This version does not like Functor<T,bool=false>
//namespace internal { BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(has_Functor,Functor,false) }
// This version lets us use non-type template parameters, but fails with older EDG-based compilers (Intel 14).
namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_Functor,template Functor<Null_tag>,false) } namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_Functor,template Functor<Null_tag>,false) }
template<class Kernel, class Tg, class O=void, template<class Kernel, class Tg, class O=void,
bool = internal::has_Functor<Kernel>::value /* false */> bool = internal::has_Functor<Kernel>::value /* false */>
struct Provides_functor_i : boost::false_type {}; struct Provides_functor_i : boost::false_type {};
@ -110,14 +114,7 @@ namespace CGAL {
template <class K, class T, class D=void, template <class K, class T, class D=void,
//bool=Provides_functor<K,T>::value, //bool=Provides_functor<K,T>::value,
//bool=Provides_functor_i<K,T>::value, //bool=Provides_functor_i<K,T>::value,
bool = bool = internal::has_Functor<K>::value
#ifdef __INTEL_COMPILER
// FIXME: this is obviously wrong, but Intel's compiler evaluates it to false
// and Epick_d doesn't seem to use the other case currently.
true
#else
internal::has_Functor<K>::value
#endif
> >
struct Inherit_functor : K::template Functor<T> {}; struct Inherit_functor : K::template Functor<T> {};
template <class K, class T, class D> template <class K, class T, class D>