Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is based on #3, which is scheduled to be merged after the course ends. I believe this PR's fate is going to be similar.
Things done:
std::unique_ptr
. If C++14 is allowed, some boilerplate can be replaced withstd::make_unique
. This also enables the full power of RAII and removes a lot of destructors.NULL
withnullptr
.override
keyword instead ofvirtual
(override
impliesvirtual
).Things that can be improved:
LSelectNode(BaseTable& table, std::vector<Predicate> predicates);
always copies its second argument, even if it's a temporary value. If one replacesthis->predicates = predicates;
withthis->predicates = std::move(predicates);
, it will use move instead of copy in these situations.