ir/terminal: std::move constructor parameters where applicable
Allows the compiler to choose the most suitable code in this scenario, given a Terminal isn't a trivial type.
This commit is contained in:
parent
b13b6610b5
commit
63eff4e7cc
1 changed files with 3 additions and 3 deletions
|
@ -94,7 +94,7 @@ using Terminal = boost::variant<
|
||||||
* on the run-time state of the ARM flags.
|
* on the run-time state of the ARM flags.
|
||||||
*/
|
*/
|
||||||
struct If {
|
struct If {
|
||||||
If(Cond if_, Terminal then_, Terminal else_) : if_(if_), then_(then_), else_(else_) {}
|
If(Cond if_, Terminal then_, Terminal else_) : if_(if_), then_(std::move(then_)), else_(std::move(else_)) {}
|
||||||
Cond if_;
|
Cond if_;
|
||||||
Terminal then_;
|
Terminal then_;
|
||||||
Terminal else_;
|
Terminal else_;
|
||||||
|
@ -106,7 +106,7 @@ struct If {
|
||||||
* then_ is executed if the check bit is non-zero, otherwise else_ is executed.
|
* then_ is executed if the check bit is non-zero, otherwise else_ is executed.
|
||||||
*/
|
*/
|
||||||
struct CheckBit {
|
struct CheckBit {
|
||||||
CheckBit(Terminal then_, Terminal else_) : then_(then_), else_(else_) {}
|
CheckBit(Terminal then_, Terminal else_) : then_(std::move(then_)), else_(std::move(else_)) {}
|
||||||
Terminal then_;
|
Terminal then_;
|
||||||
Terminal else_;
|
Terminal else_;
|
||||||
};
|
};
|
||||||
|
@ -116,7 +116,7 @@ struct CheckBit {
|
||||||
* executed.
|
* executed.
|
||||||
*/
|
*/
|
||||||
struct CheckHalt {
|
struct CheckHalt {
|
||||||
explicit CheckHalt(Terminal else_) : else_(else_) {}
|
explicit CheckHalt(Terminal else_) : else_(std::move(else_)) {}
|
||||||
Terminal else_;
|
Terminal else_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue