]> git.tdb.fi Git - libs/gl.git/commitdiff
Appease the compiler with some extra copy-ctor's and operator='s
authorMikko Rasa <tdb@tdb.fi>
Thu, 12 Sep 2019 19:34:15 +0000 (22:34 +0300)
committerMikko Rasa <tdb@tdb.fi>
Thu, 12 Sep 2019 19:34:15 +0000 (22:34 +0300)
In C++11 if you manually define either a copy constructor or an
assignment operator, you must define the other as well.

source/programsyntax.h

index 590429519118614f6a59a83796da97f50693ff9c..e7b5111ea2bfd5c411c853d99bffb32ff2f74aee 100644 (file)
@@ -20,6 +20,9 @@ struct NodeVisitor;
 
 struct Node
 {
+protected:
+       Node() { }
+       Node(const Node &) { }
 private:
        Node &operator=(const Node &);
 public:
@@ -36,6 +39,7 @@ public:
        NodePtr() { }
        NodePtr(T *p): RefPtr<T>(p) { }
        NodePtr(const NodePtr &p): RefPtr<T>(p ? p->clone() : 0) { }
+       NodePtr &operator=(const NodePtr &p) { RefPtr<T>::operator=(p); return *this; }
 
        template<typename U>
        NodePtr(const RefPtr<U> &p): RefPtr<T>(p) { }