* one dimension.
*
* Assuming that the points in
- * the on-dimensional rule are in
+ * the one-dimensional rule are in
* ascending order, the points of
* the resulting rule are ordered
* lexicographically with
* <i>x</i> running fastest.
+ *
+ * In order to avoid a conflict
+ * with the copy constructor in
+ * 1d, we let the argument be a
+ * 0d quadrature formula for
+ * dim==1, and a 1d quadrature
+ * formula for all other space
+ * dimensions.
*/
- Quadrature (const Quadrature<1> &);
+ explicit Quadrature (const Quadrature<dim != 1 ? 1 : 0> &quadrature_1d);
+
+ /**
+ * Copy constructor.
+ */
+ Quadrature (const Quadrature<dim> &q);
/**
* Construct a quadrature formula
const Quadrature<1> &);
template <>
Quadrature<0>::~Quadrature ();
+
template <>
Quadrature<1>::Quadrature (const Quadrature<0> &,
const Quadrature<1> &);
+
+template <>
+Quadrature<1>::Quadrature (const Quadrature<0> &);
+
template <>
const Point<0> & Quadrature<0>::point (const unsigned int) const;
template <>
+template <>
+Quadrature<1>::Quadrature (const Quadrature<0> &)
+ :
+ Subscriptor(),
+ n_quadrature_points (deal_II_numbers::invalid_unsigned_int),
+ quadrature_points (),
+ weights ()
+{
+ // this function should never be
+ // called -- this should be the
+ // copy constructor in 1d...
+ Assert (false, ExcInternalError());
+}
+
+
+
template <int dim>
-Quadrature<dim>::Quadrature (const Quadrature<1> &q)
+Quadrature<dim>::Quadrature (const Quadrature<dim != 1 ? 1 : 0> &q)
:
Subscriptor(),
n_quadrature_points (dimpow<dim>(q.n_quadrature_points)),
+template <int dim>
+Quadrature<dim>::Quadrature (const Quadrature<dim> &q)
+ :
+ Subscriptor(),
+ n_quadrature_points (q.n_quadrature_points),
+ quadrature_points (q.quadrature_points),
+ weights (q.weights)
+{}
+
+
+
template <int dim>
Quadrature<dim>::~Quadrature ()
{}