mirror of
https://github.com/azahar-emu/sirit.git
synced 2026-05-11 14:38:18 +02:00
Pass std::string by value where applicable.
By taking the std::string by value in the constructor, this allows for
certain situations where copies can be elided entirely (when moving an
instance into the constructor)
e.g.
std::string var = ...
...
... = LiteralString(std::move(var)) // Or whatever other initialization
// is done.
No copy will be done in this case, the move transfers it into the
constructor, and then the move within the initializer list transfers it
into the member variable.
tl;dr: This allows the calling code to potentially construct less
std::string instances by allowing moving into the parameters themselves.
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|
||||
namespace Sirit {
|
||||
|
||||
LiteralString::LiteralString(const std::string& string) : string(string) {
|
||||
LiteralString::LiteralString(std::string string) : string{std::move(string)} {
|
||||
operand_type = OperandType::String;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user