From a301145264c0400f8fb73a55009ff7d173d0b86c Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Tue, 26 Feb 2019 17:12:09 +0100 Subject: [PATCH] old GCC C++11 specialisation in a different namespace and moving template instantiations after all specialisations --- src/Mod/Part/App/GeometryDefaultExtension.cpp | 12 ++++++++++++ src/Mod/Part/App/GeometryDefaultExtension.h | 7 ------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Mod/Part/App/GeometryDefaultExtension.cpp b/src/Mod/Part/App/GeometryDefaultExtension.cpp index a125e75651..20c5ac2bfd 100644 --- a/src/Mod/Part/App/GeometryDefaultExtension.cpp +++ b/src/Mod/Part/App/GeometryDefaultExtension.cpp @@ -92,6 +92,7 @@ PyObject * GeometryDefaultExtension::getPyObject(void) THROWM(Base::NotImplementedError,"Python object not implemented for default geometry extension template type. Template Specialisation missing."); // use template specialisation to provide the actual object } +namespace Part { // ----------------------------- Template specialisations---------------------------------------------------- //typedef Part::GeometryDefaultExtension GeometryIntExtension; @@ -156,3 +157,14 @@ void GeometryDefaultExtension::Restore(Base::XMLReader &reader) value = reader.getAttributeAsFloat("value"); } + + +// instantiate the types so that other translation units (python wrappers) can access template +//constructors other than the default. +template class GeometryDefaultExtension; +template class GeometryDefaultExtension; +template class GeometryDefaultExtension; +template class GeometryDefaultExtension; + + +} //namespace Part diff --git a/src/Mod/Part/App/GeometryDefaultExtension.h b/src/Mod/Part/App/GeometryDefaultExtension.h index 105ba753e2..805867078b 100644 --- a/src/Mod/Part/App/GeometryDefaultExtension.h +++ b/src/Mod/Part/App/GeometryDefaultExtension.h @@ -97,13 +97,6 @@ namespace Part { template <> inline GeometryDefaultExtension::GeometryDefaultExtension():value(0.0f){} - // instantiate the types so that other translation units (python wrappers) can access template - //constructors other than the default. - template class GeometryDefaultExtension; - template class GeometryDefaultExtension; - template class GeometryDefaultExtension; - template class GeometryDefaultExtension; - // Prefer alias to typedef item 9 using GeometryIntExtension = GeometryDefaultExtension; using GeometryStringExtension = GeometryDefaultExtension;