diff -r 2e6e59022e6e lib/triangulator.cpp --- a/lib/triangulator.cpp Fri Nov 09 09:35:35 2012 +1100 +++ b/lib/triangulator.cpp Thu Jan 09 16:13:17 2014 +0600 @@ -27,6 +27,23 @@ #include +// Support for latest Clang/LLVM on FreeBSD which does have different libcxx. +// +// TODO(sergey): Move it some some more generic header with platform-specific +// declarations. + +// Indicates whether __is_heap is available +#undef HAVE_IS_HEAP + +#ifdef __GNUC__ +// NeyBSD doesn't have __is_heap +# ifndef __NetBSD__ +# define HAVE_IS_HEAP +# ifdef _LIBCPP_VERSION +# define __is_heap is_heap +# endif // _LIBCPP_VERSION +# endif // !__NetBSD__ +#endif // __GNUC__ namespace { // private code related to hole patching. @@ -122,7 +139,7 @@ std::vector queue; void checkheap() { -#ifdef __GNUC__ +#if defined(HAVE_IS_HEAP) CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering())); #endif }