mirror of
https://github.com/Z3Prover/z3
synced 2025-05-05 23:05:46 +00:00
Polysat: disjunctive lemmas (#5311)
* Add macro to disable linear solver for development * Move new_* and add_* to header * Add ref_vector_core::push_back(ref<T>&&) * Attempt to simplify lifetime handling * Make operator bool() explicit * clause improvements * display boolean assignment * clause::resolve * bug fixes * more fixes * final case of backtrack
This commit is contained in:
parent
5fd3ef6580
commit
8757f04d20
19 changed files with 524 additions and 294 deletions
|
@ -18,11 +18,13 @@ Author:
|
|||
#pragma once
|
||||
|
||||
#include <iostream>
|
||||
#include <utility>
|
||||
#include "util/ref.h"
|
||||
#include "util/util.h"
|
||||
|
||||
template <typename T>
|
||||
struct show_deref_t {
|
||||
T* ptr;
|
||||
T const* ptr;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
|
@ -38,7 +40,22 @@ show_deref_t<T> show_deref(T* ptr) {
|
|||
return show_deref_t<T>{ptr};
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
show_deref_t<T> show_deref(scoped_ptr<T> const& ptr) {
|
||||
// template <typename T>
|
||||
// show_deref_t<T> show_deref(ref<T> const& ptr) {
|
||||
// return show_deref_t<T>{ptr.get()};
|
||||
// }
|
||||
|
||||
// template <typename T>
|
||||
// show_deref_t<T> show_deref(scoped_ptr<T> const& ptr) {
|
||||
// return show_deref_t<T>{ptr.get()};
|
||||
// }
|
||||
|
||||
// template <typename Ptr, typename T = decltype(&*std::declval<Ptr>())>
|
||||
// show_deref_t<T> show_deref(Ptr const& ptr) {
|
||||
// return show_deref_t<T>{&*ptr};
|
||||
// }
|
||||
|
||||
template <typename Ptr, typename T = typename std::remove_pointer<decltype(std::declval<Ptr>().get())>::type>
|
||||
show_deref_t<T> show_deref(Ptr const& ptr) {
|
||||
return show_deref_t<T>{ptr.get()};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue