#pragma once #include namespace std { template void swap(T &a, T &b); template void swap(T (&a)[N], T (&b)[N]); template struct remove_reference {typedef T type;}; template struct remove_reference {typedef T type;}; template struct remove_reference {typedef T type;}; template constexpr remove_reference::type &&move(T &&) noexcept; template struct pair; }