There were no surprises with changing the done stack to a standard stack, which went like that of the hold stack. The
Done Stack class was replaced with a single alias to
std::stack and the functions were changed accordingly.
With the change of the
push calls to
emplace calls, a constructor was required in the
Done Item class. The
push contained arguments for the RPN item pointer, first and last token pointers, where the first and last pointers were optional (defaulting to a null pointer). The use patterns for the
push function were:
- RPN item pointer only
- RPN item pointer and last token pointer
- RPN item pointer, first and last token pointers
A similar constructor with the three arguments and the same optional arguments could have been added, but this would continue to require a null pointer for the middle use pattern. The first and last tokens pointers could have been switched, but this could lead to confusion. Instead, three specific constructors were added for the the above use patterns with no optional arguments.
[branch cpp11 commit
ca85a259fa]
No comments:
Post a Comment
All comments and feedback welcomed, whether positive or negative.
(Anonymous comments are allowed, but comments with URL links or unrelated comments will be removed.)