X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc%2B%2B.so_src%2Finclude_exp%2Futility;h=b3e40c53b8961619ebfb21abeee4556eb1927136;hb=5a4260f6d0d66675b888c6179b08a8e7765a9e07;hp=6f0574433a3404f37bed9040a7b67b5c991f10bf;hpb=94602b5642f62821d759a1317b35e3bd770aefad;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc++.so_src/include_exp/utility b/Usermode/Libraries/libc++.so_src/include_exp/utility index 6f057443..b3e40c53 100644 --- a/Usermode/Libraries/libc++.so_src/include_exp/utility +++ b/Usermode/Libraries/libc++.so_src/include_exp/utility @@ -8,6 +8,9 @@ #ifndef _LIBCXX_UTILITY_ #define _LIBCXX_UTILITY_ +#include "_libcxx_helpers.h" +#include "type_traits" + namespace std { template @@ -34,7 +37,21 @@ public: second(b) { } + pair(const pair& pr): + first(pr.first), + second(pr.second) + { + } + pair(pair&& pr): + first(pr.first), second(pr.second) + { + } // operator = is implicit + pair& operator=(const pair& x) { + first = x.first; + second = x.second; + return *this; + } }; template @@ -46,6 +63,26 @@ bool operator!= (const pair& lhs, const pair& rhs) { return !(lhs == rhs); } +#if _CXX11_AVAIL +template +T&& forward(typename remove_reference::type& arg) noexcept { + return static_cast(arg); +} +template +T&& forward(typename remove_reference::type&& arg) noexcept { + return static_cast(arg); +} + +template +typename remove_reference::type&& move( T&& t) noexcept { + return static_cast::type&&>(t); +} +//template +//constexpr typename ::std::remove_reference::type&& move( T&& t) noexcept { +// return static_cast::type&&>(t); +//} +#endif + }; // namespace std #endif