Reputation: 17477
I come across following C++
code:
// Struct: MoveOnCopy
template <typename T>
struct MoveOnCopy {
MoveOnCopy(T&& rhs) : object(std::move(rhs)) {}
MoveOnCopy(const MoveOnCopy& other) : object(std::move(other.object)) {}
T& get() { return object; }
mutable T object;
};
template <typename T>
MoveOnCopy(T&&) -> MoveOnCopy<T>;
I am a little confused about following statement:
template <typename T>
MoveOnCopy(T&&) -> MoveOnCopy<T>;
And just guess its a function definition which returns a MoveOnCopy
struct. I checked C++11, C++14 and C++17, but can't find similar example. Could anyone help to elaborate this definition?
Upvotes: 0
Views: 86