mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 03:32:28 +00:00 
			
		
		
		
	build fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									39913667c6
								
							
						
					
					
						commit
						1477ce2a99
					
				
					 2 changed files with 33 additions and 0 deletions
				
			
		|  | @ -42,8 +42,37 @@ class sls_tracker { | ||||||
|     struct value_score { |     struct value_score { | ||||||
|         value_score() : value(unsynch_mpz_manager::mk_z(0)) {}; |         value_score() : value(unsynch_mpz_manager::mk_z(0)) {}; | ||||||
|         value_score(value_score&&) noexcept = default; |         value_score(value_score&&) noexcept = default; | ||||||
|  |         value_score(const value_score &other) { | ||||||
|  |             m = other.m; | ||||||
|  |             if (other.m && !unsynch_mpz_manager::is_zero(other.value)) { | ||||||
|  |                 m->set(value, other.value); | ||||||
|  |             } | ||||||
|  |             score = other.score; | ||||||
|  |             score_prune = other.score_prune; | ||||||
|  |             has_pos_occ = other.has_pos_occ; | ||||||
|  |             has_neg_occ = other.has_neg_occ; | ||||||
|  |             distance = other.distance; | ||||||
|  |             touched = other.touched; | ||||||
|  |         } | ||||||
|         ~value_score() { if (m) m->del(value); } |         ~value_score() { if (m) m->del(value); } | ||||||
|         value_score& operator=(value_score&&) = default; |         value_score& operator=(value_score&&) = default; | ||||||
|  |         value_score &operator=(const value_score &other) { | ||||||
|  |             if (this != &other) { | ||||||
|  |                 if (m) | ||||||
|  |                     m->del(value); | ||||||
|  |                 m = other.m; | ||||||
|  |                 if (other.m && !unsynch_mpz_manager::is_zero(other.value)) { | ||||||
|  |                     m->set(value, other.value); | ||||||
|  |                 } | ||||||
|  |                 score = other.score; | ||||||
|  |                 score_prune = other.score_prune; | ||||||
|  |                 has_pos_occ = other.has_pos_occ; | ||||||
|  |                 has_neg_occ = other.has_neg_occ; | ||||||
|  |                 distance = other.distance; | ||||||
|  |                 touched = other.touched; | ||||||
|  |             } | ||||||
|  |             return *this; | ||||||
|  |         } | ||||||
|         unsynch_mpz_manager * m = nullptr; |         unsynch_mpz_manager * m = nullptr; | ||||||
|         mpz value; |         mpz value; | ||||||
|         double score = 0.0; |         double score = 0.0; | ||||||
|  |  | ||||||
|  | @ -61,6 +61,10 @@ public: | ||||||
|         key_data() {} |         key_data() {} | ||||||
|         key_data(Key *key) : m_key(key) {} |         key_data(Key *key) : m_key(key) {} | ||||||
|         key_data(Key *k, Value const &v) : m_key(k), m_value(v) {} |         key_data(Key *k, Value const &v) : m_key(k), m_value(v) {} | ||||||
|  |         key_data(key_data &&kd) noexcept = default; | ||||||
|  |         key_data(key_data const &kd) noexcept = default; | ||||||
|  |         key_data &operator=(key_data const &kd)  = default; | ||||||
|  |         key_data &operator=(key_data &&kd) = default; | ||||||
|         Value const & get_value() const { return m_value; } |         Value const & get_value() const { return m_value; } | ||||||
|         Key & get_key () const { return *m_key; } |         Key & get_key () const { return *m_key; } | ||||||
|         unsigned hash() const { return m_key->hash(); } |         unsigned hash() const { return m_key->hash(); } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue