Mercurial > ~dholland > hg > ag > index.cgi
view anagram/support/agdict.h @ 6:607e3be6bad8
Adjust to the moving target called the C++ standard.
Apparently nowadays it's not allowed to define an explicit copy
constructor but not an assignment operator. Consequently, defining the
explicit copy constructor in terms of the implicit/automatic
assignment operator for general convenience no longer works.
Add assignment operators.
Caution: not tested with the IBM compiler, but there's no particular
reason it shouldn't work.
author | David A. Holland |
---|---|
date | Mon, 30 May 2022 23:46:22 -0400 |
parents | 13d2b8934445 |
children |
line wrap: on
line source
/* * AnaGram, A System for Syntax Directed Programming * Copyright 1997-2002 Parsifal Software. All Rights Reserved. * See the file COPYING for license and usage terms. * * agdict.h - new string dictionary */ #ifndef AGDICT_H #define AGDICT_H class AgString; // from agstr.h #include "agbaltree.h" #include "agstack.h" class AgStringDictionary { class Tree : public AgBalancedTree<int> { protected: AgStack<AgString> stringStore; int compare(const int &x, const int &y) const; friend class AgStringDictionary; void reset(); }; Tree tree; public: void reset() { tree.reset(); } AgStringDictionary() { tree.reset(); } unsigned size() const { return tree.size(); } int operator << (const AgString s); int operator [] (const AgString s); AgString operator [] (const unsigned x); }; #endif /* AGDICT_H */