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.
Schedule
is a relatively heavy data structure, consisting of a couple vectors and other members, and is a prime candidate for moving instead of copying.In fact several constructors already accept
Schedule
by value and move, so I am simply fixing the ones that aren't.For the most part the changes are straightforward, but one thing to point out is that in
overnightindexedswap.cpp
I had to replaceovernightSchedule
withfloatingSchedule()
to access the moved-to member variable instead of the moved-from constructor arg, which may not be obvious from the variable names.Another thing to point out, again in
overnightindexedswap.cpp
, is that the constructors taking a singleSchedule
argument end up copying twice - once intofixedSchedule
and once intoovernightSchedule
. Perhaps these constructors should be deprecated in favor of the ones taking both schedules? I think that would help make the code more explicit and readable as well.