template <typename Number> class BlockVector;
+namespace internal
+{
+ /**
+ * A class whose specialization is
+ * used to define what type the
+ * curl of a vector valued function
+ * corresponds to.
+ */
+ template <int dim>
+ struct CurlType;
+
+ /**
+ * A class whose specialization is
+ * used to define what type the
+ * curl of a vector valued function
+ * corresponds to.
+ *
+ * In 1d, the curl is a scalar.
+ */
+ template <>
+ struct CurlType<1>{
+ typedef Tensor<1,1> type;
+ };
+
+ /**
+ * A class whose specialization is
+ * used to define what type the
+ * curl of a vector valued function
+ * corresponds to.
+ *
+ * In 2d, the curl is a scalar.
+ */
+ template <>
+ struct CurlType<2>{
+ typedef Tensor<1,1> type;
+ };
+
+ /**
+ * A class whose specialization is
+ * used to define what type the
+ * curl of a vector valued function
+ * corresponds to.
+ *
+ * In 3d, the curl is a vector.
+ */
+ template <>
+ struct CurlType<3>{
+ typedef Tensor<1,3> type;
+ };
+}
+
+
/**
* A namespace in which we declare "extractors", i.e. classes that when used
* as subscripts in operator[] expressions on FEValues, FEFaceValues, and
* <code>spacedim=3</code> it is a
* <code>Tensor@<1, dim@></code>.
*/
- typedef Tensor<1, (spacedim == 3)? 3 : 1> curl_type;
+ typedef typename internal::CurlType<spacedim>::type curl_type;
/**
* A typedef for the type of second
<h3>General</h3>
<ol>
+ <li>
+ <p>Fixed: GCC version 4.0.1 had a bug that prevented it from compiling
+ release 6.3.0 because it apparently had an infinite loop allocating
+ memory when compiling <code>fe_values.cc</code> in optimized mode. This
+ had been fixed in GCC 4.0.2, but some versions of Mac OS X still use
+ this GCC version in their Xcode environment.
+ <br>
+ (WB 2010/06/30)
+ </p>
+
<li>
<p>Fixed: Configuring with an external BOOST version did not work when
using shared libraries since the test ran in the wrong order with respect