--- Begin Message ---
Subject: |
Bug#293018: freefem3d: FTBFS (amd64/gcc-4.0): explicit specialization of 'void ConnectivityBuilder<MeshOfHexahedra>::setFaces()' must be introduced by 'template <>' |
Date: |
Mon, 31 Jan 2005 19:23:16 +0100 |
Package: freefem3d
Severity: normal
Tags: patch
When building 'freefem3d' on amd64 with gcc-4.0,
I get the following error:
../../solver/ConnectivityBuilder.cpp:25: error: explicit specialization of
'void ConnectivityBuilder<MeshOfHexahedra>::setFaces()' must be introduced by
'template <>'
../../solver/ConnectivityBuilder.cpp:25: error: template-id 'setFaces<>' for
'void ConnectivityBuilder<MeshOfHexahedra>::setFaces()' does not match any
template declaration
../../solver/ConnectivityBuilder.cpp:25: error: invalid function declaration
../../solver/ConnectivityBuilder.cpp:58: error: explicit specialization of
'void ConnectivityBuilder<MeshOfTetrahedra>::setFaces()' must be introduced by
'template <>'
../../solver/ConnectivityBuilder.cpp:58: error: template-id 'setFaces<>' for
'void ConnectivityBuilder<MeshOfTetrahedra>::setFaces()' does not match any
template declaration
../../solver/ConnectivityBuilder.cpp:58: error: invalid function declaration
../../solver/ConnectivityBuilder.cpp:77: error: explicit specialization of
'void ConnectivityBuilder<SurfaceMeshOfTriangles>::setFaces()' must be
introduced by 'template <>'
../../solver/ConnectivityBuilder.cpp:77: error: template-id 'setFaces<>' for
'void ConnectivityBuilder<SurfaceMeshOfTriangles>::setFaces()' does not match
any template declaration
../../solver/ConnectivityBuilder.cpp:77: error: invalid function declaration
make[3]: *** [ConnectivityBuilder.o] Error 1
make[3]: Leaving directory `/freefem3d-1.0pre5/opt/solver'
With the attached patch 'freefem3d' can be compiled
on amd64 using gcc-4.0.
Regards
Andreas Jochens
diff -urN ../tmp-orig/freefem3d-1.0pre5/solver/ConnectivityBuilder.cpp
./solver/ConnectivityBuilder.cpp
--- ../tmp-orig/freefem3d-1.0pre5/solver/ConnectivityBuilder.cpp
2003-04-27 19:04:27.000000000 +0200
+++ ./solver/ConnectivityBuilder.cpp 2005-01-31 17:41:35.725866180 +0100
@@ -22,7 +22,7 @@
#include <MeshOfTetrahedra.hpp>
#include <MeshOfHexahedra.hpp>
-void ConnectivityBuilder<MeshOfHexahedra>::setFaces()
+template <> void ConnectivityBuilder<MeshOfHexahedra>::setFaces()
{
__face[0][0] = 4;
__face[0][1] = 7;
@@ -55,7 +55,7 @@
__face[5][3] = 4;
}
-void ConnectivityBuilder<MeshOfTetrahedra>::setFaces()
+template <> void ConnectivityBuilder<MeshOfTetrahedra>::setFaces()
{
__face[0][0] = 1;
__face[0][1] = 2;
@@ -74,7 +74,7 @@
__face[3][2] = 0;
}
-void ConnectivityBuilder<SurfaceMeshOfTriangles>::setFaces()
+template <> void ConnectivityBuilder<SurfaceMeshOfTriangles>::setFaces()
{
__face[0][0] = 1;
__face[0][1] = 2;
diff -urN ../tmp-orig/freefem3d-1.0pre5/solver/ElementaryMatrixSet.cpp
./solver/ElementaryMatrixSet.cpp
--- ../tmp-orig/freefem3d-1.0pre5/solver/ElementaryMatrixSet.cpp
2003-12-26 19:38:02.000000000 +0100
+++ ./solver/ElementaryMatrixSet.cpp 2005-01-31 17:53:57.555273982 +0100
@@ -36,7 +36,7 @@
*/
#define EMS(ElementaryMatrixType) \
-ElementaryMatrixSet<ElementaryMatrixType>:: \
+template <> ElementaryMatrixSet<ElementaryMatrixType>::
\
ElementaryMatrixSet(const Problem& problem) \
: __divMuGrad(false),
\
__massOperator(false), \
--- End Message ---