make protected member variables private and use getters and setter instead (better encapsulation -> less opportunity for derived classes to change data)
add excplicit keyword to many constructors to prevent confusing implicit conversions
correctly forward arguments that are universal references
This resulted in some further small refactoring:
In the propagator, I removed the universal reference completely, since the actor states are just a tuple of references and added an overload, which is easier to read. This meant, I had to use detray::tie and detray::get for the actor states.
In the multistore, I collapsed the copy and move versions of the insert methods to one implementation
For the ranges implementation I was finally able to remove all of the explicit copy/move constructor and assignment operators.
Some general code cleanup:
excplicit
keyword to many constructors to prevent confusing implicit conversionsThis resulted in some further small refactoring:
In the propagator, I removed the universal reference completely, since the actor states are just a tuple of references and added an overload, which is easier to read. This meant, I had to use
detray::tie
anddetray::get
for the actor states.In the multistore, I collapsed the copy and move versions of the insert methods to one implementation
For the ranges implementation I was finally able to remove all of the explicit copy/move constructor and assignment operators.