diff options
author | Daniel Wilhelm <daniel@wili.li> | 2015-10-02 14:55:19 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2015-10-02 14:55:19 +0200 |
commit | 46fc289a8776ba253e97d01d6948fb1031ea1973 (patch) | |
tree | b16a99c60f21b04c001f29862bf2ee16ae3a0e00 /zen/string_base.h | |
parent | 6.15 (diff) | |
download | FreeFileSync-46fc289a8776ba253e97d01d6948fb1031ea1973.tar.gz FreeFileSync-46fc289a8776ba253e97d01d6948fb1031ea1973.tar.bz2 FreeFileSync-46fc289a8776ba253e97d01d6948fb1031ea1973.zip |
7.0
Diffstat (limited to 'zen/string_base.h')
-rw-r--r-- | zen/string_base.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/zen/string_base.h b/zen/string_base.h index b1d7102e..be3b532e 100644 --- a/zen/string_base.h +++ b/zen/string_base.h @@ -287,8 +287,8 @@ template <class Char, template <class, class> class SP, class AP> inline Zbase<C template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+(const Zbase<Char, SP, AP>& lhs, Char rhs) { return Zbase<Char, SP, AP>(lhs) += rhs; } //don't use unified first argument but save one move-construction in the r-value case instead! -template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+(Zbase<Char, SP, AP>&& lhs, const Zbase<Char, SP, AP>& rhs) { return std::move(lhs += rhs); } //is the move really needed? -template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+(Zbase<Char, SP, AP>&& lhs, const Char* rhs) { return std::move(lhs += rhs); } //lhs, is an l-vlaue in the function body... +template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+(Zbase<Char, SP, AP>&& lhs, const Zbase<Char, SP, AP>& rhs) { return std::move(lhs += rhs); } //the move *is* needed!!! +template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+(Zbase<Char, SP, AP>&& lhs, const Char* rhs) { return std::move(lhs += rhs); } //lhs, is an l-value parameter... template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+(Zbase<Char, SP, AP>&& lhs, Char rhs) { return std::move(lhs += rhs); } //and not a local variable => no copy elision template <class Char, template <class, class> class SP, class AP> inline Zbase<Char, SP, AP> operator+( Char lhs, const Zbase<Char, SP, AP>& rhs) { return Zbase<Char, SP, AP>(lhs) += rhs; } |