Mark one-parameter constructors as explicit & use override where possible

This commit marks (hopefully) ever one-parameter constructor as explicit.

It also uses override in (hopefully) all circumstances where a virtual
method is overridden.

There are a very few other minor changes - most of them were necessary
to get everything to compile (like one additional constructor). In one
case I changed an implicit operation to an explicit string conversion -
I think the automatically chosen conversion was much more convoluted.

This took longer than I want to admit but not as long as I feared :)
This commit is contained in:
Johanna Amann 2018-03-16 22:14:22 -07:00
parent 1f2bf50b49
commit 6d612ced3d
173 changed files with 1052 additions and 1046 deletions

View file

@ -39,7 +39,7 @@ public:
void incr(int& index) { index < max_entries ? ++index : index = 0; }
protected:
BaseQueue(int = 0);
explicit BaseQueue(int = 0);
void push_front(ent); // add in front of queue
void push_back(ent); // add at end of queue
@ -73,7 +73,7 @@ protected:
struct Queue(type) : BaseQueue \
{ \
Queue(type)() : BaseQueue(0) {} \
Queue(type)(int sz) : BaseQueue(sz) {} \
explicit Queue(type)(int sz) : BaseQueue(sz) {} \
\
void push_front(type a) { BaseQueue::push_front(ent(a)); } \
void push_back(type a) { BaseQueue::push_back(ent(a)); } \
@ -88,7 +88,7 @@ struct Queue(type) : BaseQueue \
struct PQueue(type) : BaseQueue \
{ \
PQueue(type)() : BaseQueue(0) {} \
PQueue(type)(int sz) : BaseQueue(sz) {} \
explicit PQueue(type)(int sz) : BaseQueue(sz) {} \
\
void push_front(type* a){ BaseQueue::push_front(ent(a)); } \
void push_back(type* a) { BaseQueue::push_back(ent(a)); } \