Swap.h 623 B

123456789101112131415161718192021222324252627
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. #pragma once
  4. namespace Urho3D
  5. {
  6. class HashBase;
  7. class ListBase;
  8. class String;
  9. class VectorBase;
  10. /// Swap two values.
  11. template <class T> inline void Swap(T& first, T& second)
  12. {
  13. T temp = first;
  14. first = second;
  15. second = temp;
  16. }
  17. template <> URHO3D_API void Swap<String>(String& first, String& second);
  18. template <> URHO3D_API void Swap<VectorBase>(VectorBase& first, VectorBase& second);
  19. template <> URHO3D_API void Swap<ListBase>(ListBase& first, ListBase& second);
  20. template <> URHO3D_API void Swap<HashBase>(HashBase& first, HashBase& second);
  21. }