]> https://gitweb.dealii.org/ - dealii.git/commitdiff
move instantiations to correct place
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Thu, 20 Oct 2005 22:42:02 +0000 (22:42 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Thu, 20 Oct 2005 22:42:02 +0000 (22:42 +0000)
git-svn-id: https://svn.dealii.org/trunk@11642 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/grid/tria_accessor.cc
deal.II/lac/source/block_sparsity_pattern.cc

index 96bfc5c16715cc5c51cf005f4669201d1b98e06d..d5b62abf5a50844acdb6a8ab3d0a88e74d25d95a 100644 (file)
 
 #include <cmath>
 
-// Remark: The following explicit instantiations needed to be moved to
-// this place here to work around a problem with gcc3.3 on Apple MacOSX.
-// The reason is that some of the functions instantiated here are used
-// further down; if they are not explicitly instantiated here, then the
-// compiler will do an implicit instantiation and give it internal linkage
-// (despite the later explicit instantiation that should make sure it
-// gets external linkage). To make sure the functions have external
-// linkage, we need to place the explicit instantiation before the first
-// use.
-//
-// For more information, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24331
-// +++++++++++++
-
-
-template class TriaObjectAccessor<1, deal_II_dimension>;
-
-#if deal_II_dimension >= 2
-template class TriaObjectAccessor<2, deal_II_dimension>;
-#endif
-
-#if deal_II_dimension >= 3
-template class TriaObjectAccessor<3, deal_II_dimension>;
-#endif
 
 
 /*------------------------ Functions: LineAccessor ---------------------------*/
@@ -1627,6 +1604,29 @@ set_face_orientation (const unsigned int face,
 }
 
 
+// Remark: The following explicit instantiations needed to be moved to
+// this place here to work around a problem with gcc3.3 on Apple MacOSX.
+// The reason is that some of the functions instantiated here are used
+// further down; if they are not explicitly instantiated here, then the
+// compiler will do an implicit instantiation and give it internal linkage
+// (despite the later explicit instantiation that should make sure it
+// gets external linkage). To make sure the functions have external
+// linkage, we need to place the explicit instantiation before the first
+// use.
+//
+// For more information, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24331
+
+template class TriaObjectAccessor<1, deal_II_dimension>;
+
+#if deal_II_dimension >= 2
+template class TriaObjectAccessor<2, deal_II_dimension>;
+#endif
+
+#if deal_II_dimension >= 3
+template class TriaObjectAccessor<3, deal_II_dimension>;
+#endif
+
+
 
 /*------------------------ Functions: CellAccessor<1> -----------------------*/
 
index 7fb3c57a506dcfe765a19188048c4ea800125528..31fd7dff6b63e55927dbfdef8bd5cdca936e096e 100644 (file)
 #include <lac/block_sparsity_pattern.h>
 
 
-// Remark: The following explicit instantiations needed to be moved to
-// this place here to work around a problem with gcc3.3 on Apple MacOSX.
-// The reason is that some of the functions instantiated here are used
-// further down; if they are not explicitly instantiated here, then the
-// compiler will do an implicit instantiation and give it internal linkage
-// (despite the later explicit instantiation that should make sure it
-// gets external linkage). To make sure the functions have external
-// linkage, we need to place the explicit instantiation before the first
-// use.
-//
-// For more information, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24331
-// +++++++++++++
-
-
-template class BlockSparsityPatternBase<SparsityPattern>;
-template class BlockSparsityPatternBase<CompressedSparsityPattern>;
-
-
 template <class SparsityPatternBase>
 BlockSparsityPatternBase<SparsityPatternBase>::BlockSparsityPatternBase ()
                :
@@ -281,6 +263,27 @@ BlockSparsityPatternBase<SparsityPatternBase>::print(std::ostream& out) const
 }
 
 
+
+// Remark: The following explicit instantiations needed to be moved to
+// this place here to work around a problem with gcc3.3 on Apple MacOSX.
+// The reason is that some of the functions instantiated here are used
+// further down; if they are not explicitly instantiated here, then the
+// compiler will do an implicit instantiation and give it internal linkage
+// (despite the later explicit instantiation that should make sure it
+// gets external linkage). To make sure the functions have external
+// linkage, we need to place the explicit instantiation before the first
+// use.
+//
+// For more information, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24331
+// +++++++++++++
+
+
+template class BlockSparsityPatternBase<SparsityPattern>;
+template class BlockSparsityPatternBase<CompressedSparsityPattern>;
+
+
+
+
 BlockSparsityPattern::BlockSparsityPattern ()
 {}
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.