From c6accbd29fe9bc3bff1afbebb7adb8e467955796 Mon Sep 17 00:00:00 2001
From: looooo <sppedflyer@gmail.com>
Date: Sat, 24 Jun 2017 06:55:04 +0200
Subject: [PATCH] workaround for windows vs2015 compilation

---
 src/cpp/foreign_array.hpp      |  5 +----
 src/cpp/foreign_array_wrap.hpp |  2 --
 src/cpp/wrap_tetgen.cpp        | 20 ++++++++++++++++++++
 src/cpp/wrap_triangle.cpp      | 12 ++++++++++++
 4 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/src/cpp/foreign_array.hpp b/src/cpp/foreign_array.hpp
index b5b4c49..31f3b49 100644
--- a/src/cpp/foreign_array.hpp
+++ b/src/cpp/foreign_array.hpp
@@ -9,9 +9,7 @@
 #include <boost/python.hpp>
 
 
-
-
-namespace {
+namespace{
 
 class tSizeChangeNotifier;
 
@@ -278,5 +276,4 @@ class tForeignArray : public tReadOnlyForeignArray<ElementT>
 
 
 
-
 #endif
diff --git a/src/cpp/foreign_array_wrap.hpp b/src/cpp/foreign_array_wrap.hpp
index 32f0cbe..9ef3c52 100644
--- a/src/cpp/foreign_array_wrap.hpp
+++ b/src/cpp/foreign_array_wrap.hpp
@@ -22,8 +22,6 @@ using namespace boost::python;
 }
 
 
-
-
 namespace {
   /* This wrap helper works as long as the value_type is a plain old data (POD)
    * type.
diff --git a/src/cpp/wrap_tetgen.cpp b/src/cpp/wrap_tetgen.cpp
index a574688..231f9fd 100644
--- a/src/cpp/wrap_tetgen.cpp
+++ b/src/cpp/wrap_tetgen.cpp
@@ -14,7 +14,27 @@ namespace py = boost::python;
 using namespace std;
 
 
+namespace boost {
+template <>
+inline tForeignArray<struct tetgenio::polygon> const volatile * get_pointer(class tForeignArray<struct tetgenio::polygon> const volatile *tF) {
+  return tF;
+}
+
+template <>
+inline tForeignArray<struct tetgenio::facet> const volatile * get_pointer(class tForeignArray<struct tetgenio::facet> const volatile *tF) {
+  return tF;
+}
 
+template <>
+inline tForeignArray<int> const volatile * get_pointer(class tForeignArray<int> const volatile *tF) {
+  return tF;
+}
+
+template <>
+inline tForeignArray<double> const volatile * get_pointer(class tForeignArray<double> const volatile *tF) {
+  return tF;
+}
+}
 
 namespace
 {
diff --git a/src/cpp/wrap_triangle.cpp b/src/cpp/wrap_triangle.cpp
index 26b3ef3..6aea449 100644
--- a/src/cpp/wrap_triangle.cpp
+++ b/src/cpp/wrap_triangle.cpp
@@ -11,6 +11,18 @@ using namespace boost::python;
 using namespace std;
 
 
+namespace boost {
+template <>
+inline tForeignArray<int> const volatile * get_pointer(class tForeignArray<int> const volatile *tF) {
+  return tF;
+}
+
+template <>
+inline tForeignArray<double> const volatile * get_pointer(class tForeignArray<double> const volatile *tF) {
+  return tF;
+}
+}
+
 
 
 struct tMeshInfo : public triangulateio, public boost::noncopyable
-- 
GitLab