* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author André Pönitz
+ * \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#include "MathAtom.h"
#include "InsetMath.h"
+using namespace std;
namespace lyx {
-using std::swap;
-
-MathAtom::MathAtom()
- : nucleus_(0)
-{}
-
-
-MathAtom::MathAtom(Inset * p)
- : nucleus_(static_cast<InsetMath *>(p))
+MathAtom::MathAtom(InsetMath * p)
+ : nucleus_(p)
{}
MathAtom::MathAtom(MathAtom const & at)
- : nucleus_(0)
-{
- if (at.nucleus_)
- nucleus_ = static_cast<InsetMath*>(at.nucleus_->clone().release());
-}
+ : nucleus_(at.nucleus_ ? static_cast<InsetMath*>(at->clone()) : nullptr)
+{}
MathAtom & MathAtom::operator=(MathAtom const & at)
{
- if (&at == this)
- return *this;
- MathAtom tmp(at);
- swap(tmp.nucleus_, nucleus_);
- return *this;
-}
-
-
-MathAtom::~MathAtom()
-{
- delete nucleus_;
+ // copy then move-assign
+ return operator=(MathAtom(at));
}