]> git.sesse.net Git - casparcg/blob - common/utility/move_on_copy.h
2.0 image_mixer: Refactored, core: Fixed destruction proxy usage.
[casparcg] / common / utility / move_on_copy.h
1 #pragma once\r
2 \r
3 namespace caspar {\r
4                 \r
5 template<typename T>\r
6 struct move_on_copy\r
7 {\r
8         move_on_copy(const move_on_copy<T>& other) : value(std::move(other.value)){}\r
9         move_on_copy(T&& value) : value(std::move(value)){}\r
10         mutable T value;\r
11 };\r
12 \r
13 template<typename T>\r
14 move_on_copy<T> make_move_on_copy(T&& value)\r
15 {\r
16         return move_on_copy<T>(std::move(value));\r
17 }\r
18 \r
19 }