// $Id$
// Version: $Name$
//
-// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 by the deal.II authors
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 by the deal.II authors
//
// This file is subject to QPL and may not be distributed
// without copyright and license information. Please refer
template <int dim>
class FiniteElement : public FiniteElementBase<dim>
{
- private:
- /**
- * Copy constructor prohibited.
- */
- FiniteElement(const FESystem<dim>&);
-
public:
+ /**
+ * Copy constructor. This one is declared
+ * as a public constructor to avoid
+ * certain compiler errors when a copy
+ * constructor is required even if it is
+ * not executed (for example when binding
+ * a temporary object to a constant
+ * reference). However, if you try to
+ * actually call it, it will throw an
+ * exception, since copying finite
+ * element objects is not really
+ * supported. If you want to copy such an
+ * object, use the @p{clone} function.
+ */
+ FiniteElement (const FiniteElement &);
+
/**
* Constructor
*/
// $Id$
// Version: $Name$
//
-// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 by the deal.II authors
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 by the deal.II authors
//
// This file is subject to QPL and may not be distributed
// without copyright and license information. Please refer
template <int dim>
class FESystem : public FiniteElement<dim>
{
- /**
- * Copy constructor prohibited.
- */
- FESystem(const FESystem<dim>&);
-
public:
/**
// $Id$
// Version: $Name$
//
-// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 by the deal.II authors
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 by the deal.II authors
//
// This file is subject to QPL and may not be distributed
// without copyright and license information. Please refer
template <int dim>
FiniteElement<dim>::FiniteElement (const FiniteElementData<dim> &fe_data,
const std::vector<bool> &restriction_is_additive_flags,
- const std::vector<std::vector<bool> > &nonzero_components) :
+ const std::vector<std::vector<bool> > &nonzero_components)
+ :
FiniteElementBase<dim> (fe_data,
restriction_is_additive_flags,
nonzero_components)
+template <int dim>
+FiniteElement<dim>::FiniteElement (const FiniteElement<dim> &)
+ :
+ FiniteElementBase<dim> (FiniteElementData<dim>(),
+ std::vector<bool> (),
+ std::vector<std::vector<bool> >())
+{
+ Assert (false,
+ ExcMessage ("Finite element objects don't support copying "
+ "semantics through the copy constructor. If "
+ "you want to copy a finite element, use the "
+ "clone() function."));
+}
+
+
+
template <int dim>
FiniteElement<dim>::~FiniteElement ()
{}