mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 11:42:28 +00:00 
			
		
		
		
	fix vector<> to support non-POD types
adjust code to std::move and avoid unnecessary/illegal
This commit is contained in:
		
							parent
							
								
									4d1acadabb
								
							
						
					
					
						commit
						9b54b4e784
					
				
					 35 changed files with 253 additions and 95 deletions
				
			
		|  | @ -94,6 +94,9 @@ class mpz { | |||
| public: | ||||
|     mpz(int v):m_val(v), m_ptr(0) {} | ||||
|     mpz():m_val(0), m_ptr(0) {} | ||||
|     mpz(mpz && other) noexcept : m_val(other.m_val), m_ptr(0) { | ||||
|         std::swap(m_val, other.m_val); | ||||
|     } | ||||
|     void swap(mpz & other) {  | ||||
|         std::swap(m_val, other.m_val); | ||||
|         std::swap(m_ptr, other.m_ptr); | ||||
|  | @ -668,6 +671,12 @@ public: | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     void set(mpz & target, mpz && source) { | ||||
|         del(target); | ||||
|         target.m_val = source.m_val; | ||||
|         std::swap(target.m_ptr, source.m_ptr); | ||||
|     } | ||||
| 
 | ||||
|     void set(mpz & a, int val) { | ||||
|         del(a); | ||||
|         a.m_val = val; | ||||
|  | @ -700,6 +709,12 @@ public: | |||
| 
 | ||||
|     void set(mpz & target, unsigned sz, digit_t const * digits); | ||||
| 
 | ||||
|     mpz dup(const mpz & source) { | ||||
|         mpz temp; | ||||
|         set(temp, source); | ||||
|         return temp; | ||||
|     } | ||||
| 
 | ||||
|     void reset(mpz & a) { | ||||
|         del(a); | ||||
|         a.m_val = 0; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue