Prechádzať zdrojové kódy

ImVector: Added copy/assign operators as helpers to ease cloning of data.

omar 7 rokov pred
rodič
commit
6bda816ffe
1 zmenil súbory, kde vykonal 3 pridanie a 1 odobranie
  1. 3 1
      imgui.h

+ 3 - 1
imgui.h

@@ -1120,7 +1120,7 @@ namespace ImGui
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
 
 // Lightweight std::vector<> like class to avoid dragging dependencies (also: Windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug).
 // Lightweight std::vector<> like class to avoid dragging dependencies (also: Windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug).
-// Important: Our implementation does NOT call C++ constructors/destructors. This is intentional, we do not require it but you have to be mindful of that. Do not use this class as a straight std::vector replacement in your code!
+// *Important* Our implementation does NOT call C++ constructors/destructors. This is intentional, we do not require it but you have to be mindful of that. Do not use this class as a straight std::vector replacement in your code!
 template<typename T>
 template<typename T>
 class ImVector
 class ImVector
 {
 {
@@ -1135,6 +1135,8 @@ public:
 
 
     inline ImVector()           { Size = Capacity = 0; Data = NULL; }
     inline ImVector()           { Size = Capacity = 0; Data = NULL; }
     inline ~ImVector()          { if (Data) ImGui::MemFree(Data); }
     inline ~ImVector()          { if (Data) ImGui::MemFree(Data); }
+    inline ImVector(const ImVector<T>& src)                     { Size = Capacity = 0; Data = NULL; operator=(src); }
+    inline ImVector& operator=(const ImVector<T>& src)          { clear(); resize(src.Size); memcpy(Data, src.Data, (size_t)Size * sizeof(value_type)); return *this; }
 
 
     inline bool                 empty() const                   { return Size == 0; }
     inline bool                 empty() const                   { return Size == 0; }
     inline int                  size() const                    { return Size; }
     inline int                  size() const                    { return Size; }