commit 4fc8c7fedd4145acc7b666480d08967a77acf6d9
Author: Guillaume MM <[email protected]>
Date: Mon Apr 10 01:05:55 2017 +0200
MathAtom: prefer composition over inheritance
---
src/mathed/MathAtom.cpp | 4 ++--
src/mathed/MathAtom.h | 13 ++++++++-----
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/mathed/MathAtom.cpp b/src/mathed/MathAtom.cpp
index cbf26ec..10f5217 100644
--- a/src/mathed/MathAtom.cpp
+++ b/src/mathed/MathAtom.cpp
@@ -19,12 +19,12 @@ namespace lyx {
MathAtom::MathAtom(InsetMath * p)
- : unique_ptr<InsetMath>(p)
+ : nucleus_(p)
{}
MathAtom::MathAtom(MathAtom const & at)
- : unique_ptr<InsetMath>(at ? static_cast<InsetMath*>(at->clone()) :
nullptr)
+ : nucleus_(at.nucleus_ ? static_cast<InsetMath*>(at->clone()) : nullptr)
{}
diff --git a/src/mathed/MathAtom.h b/src/mathed/MathAtom.h
index 7801fe6..5d20e69 100644
--- a/src/mathed/MathAtom.h
+++ b/src/mathed/MathAtom.h
@@ -40,15 +40,14 @@ Andre'
*/
-#include <memory>
-
+#include "support/unique_ptr.h"
namespace lyx {
class Inset;
class InsetMath;
-class MathAtom : public std::unique_ptr<InsetMath> {
+class MathAtom {
public:
MathAtom() = default;
MathAtom(MathAtom &&) = default;
@@ -59,8 +58,12 @@ public:
MathAtom(MathAtom const &);
MathAtom & operator=(MathAtom const &);
/// access to the inset
- InsetMath * nucleus() { return get(); }
- InsetMath const * nucleus() const { return get(); }
+ InsetMath * nucleus() { return nucleus_.get(); }
+ InsetMath const * nucleus() const { return nucleus_.get(); }
+ InsetMath * operator->() { return nucleus_.get(); }
+ InsetMath const * operator->() const { return nucleus_.get(); }
+private:
+ std::unique_ptr<InsetMath> nucleus_;
};