mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 13:29:11 +00:00 
			
		
		
		
	Fix Visual Studio warnings
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
		
							parent
							
								
									93f37bdf9f
								
							
						
					
					
						commit
						7312f49f88
					
				
					 5 changed files with 60 additions and 54 deletions
				
			
		| 
						 | 
					@ -25,23 +25,23 @@ Notes:
 | 
				
			||||||
#include"api_context.h"
 | 
					#include"api_context.h"
 | 
				
			||||||
#include"realclosure.h"
 | 
					#include"realclosure.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					static rcmanager & rcfm(Z3_context c) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
    static rcmanager & rcfm(Z3_context c) {
 | 
					 | 
				
			||||||
    return mk_c(c)->rcfm();
 | 
					    return mk_c(c)->rcfm();
 | 
				
			||||||
    }
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static void reset_rcf_cancel(Z3_context c) {
 | 
					static void reset_rcf_cancel(Z3_context c) {
 | 
				
			||||||
    rcfm(c).reset_cancel();
 | 
					    rcfm(c).reset_cancel();
 | 
				
			||||||
    }
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static rcnumeral to_rcnumeral(Z3_rcf_num a) { 
 | 
					static Z3_rcf_num from_rcnumeral(rcnumeral a) { 
 | 
				
			||||||
        return rcnumeral::mk(a); 
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    static Z3_rcf_num from_rcnumeral(rcnumeral a) { 
 | 
					 | 
				
			||||||
    return reinterpret_cast<Z3_rcf_num>(a.c_ptr()); 
 | 
					    return reinterpret_cast<Z3_rcf_num>(a.c_ptr()); 
 | 
				
			||||||
    }
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static rcnumeral to_rcnumeral(Z3_rcf_num a) { 
 | 
				
			||||||
 | 
					    return rcnumeral::mk(a); 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void Z3_API Z3_rcf_del(Z3_context c, Z3_rcf_num a) {
 | 
					    void Z3_API Z3_rcf_del(Z3_context c, Z3_rcf_num a) {
 | 
				
			||||||
        Z3_TRY;
 | 
					        Z3_TRY;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,8 @@ void mpz_matrix_manager::mk(unsigned m, unsigned n, mpz_matrix & A) {
 | 
				
			||||||
    del(A);
 | 
					    del(A);
 | 
				
			||||||
    A.m = m;
 | 
					    A.m = m;
 | 
				
			||||||
    A.n = n;
 | 
					    A.n = n;
 | 
				
			||||||
    A.a_ij = new (m_allocator) mpz[m*n];
 | 
					    void * mem = m_allocator.allocate(sizeof(mpz)*m*n);
 | 
				
			||||||
 | 
					    A.a_ij = new (mem) mpz[m*n];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void mpz_matrix_manager::del(mpz_matrix & A) {
 | 
					void mpz_matrix_manager::del(mpz_matrix & A) {
 | 
				
			||||||
| 
						 | 
					@ -409,7 +410,7 @@ void mpz_matrix_manager::display(std::ostream & out, mpz_matrix const & A, unsig
 | 
				
			||||||
                out << " ";
 | 
					                out << " ";
 | 
				
			||||||
            std::string s = nm().to_string(A(i, j));
 | 
					            std::string s = nm().to_string(A(i, j));
 | 
				
			||||||
            if (s.size() < cell_width) {
 | 
					            if (s.size() < cell_width) {
 | 
				
			||||||
                unsigned space = cell_width - s.size();
 | 
					                unsigned space = cell_width - static_cast<unsigned>(s.size());
 | 
				
			||||||
                for (unsigned k = 0; k < space; k++) 
 | 
					                for (unsigned k = 0; k < space; k++) 
 | 
				
			||||||
                    out << " ";
 | 
					                    out << " ";
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,10 +97,10 @@ namespace realclosure {
 | 
				
			||||||
            void set_upper_is_open(bool f) { m_upper_open = f; }
 | 
					            void set_upper_is_open(bool f) { m_upper_open = f; }
 | 
				
			||||||
            numeral const & lower() const { return m_lower; }
 | 
					            numeral const & lower() const { return m_lower; }
 | 
				
			||||||
            numeral const & upper() const { return m_upper; }
 | 
					            numeral const & upper() const { return m_upper; }
 | 
				
			||||||
            bool lower_is_inf() const { return m_lower_inf; }
 | 
					            bool lower_is_inf() const { return m_lower_inf != 0; }
 | 
				
			||||||
            bool upper_is_inf() const { return m_upper_inf; }
 | 
					            bool upper_is_inf() const { return m_upper_inf != 0; }
 | 
				
			||||||
            bool lower_is_open() const { return m_lower_open; }
 | 
					            bool lower_is_open() const { return m_lower_open != 0; }
 | 
				
			||||||
            bool upper_is_open() const { return m_upper_open; }
 | 
					            bool upper_is_open() const { return m_upper_open != 0; }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        void set_rounding(bool to_plus_inf) { m_manager.m_to_plus_inf = to_plus_inf; }
 | 
					        void set_rounding(bool to_plus_inf) { m_manager.m_to_plus_inf = to_plus_inf; }
 | 
				
			||||||
| 
						 | 
					@ -112,10 +112,10 @@ namespace realclosure {
 | 
				
			||||||
        numeral const & upper(interval const & a) const { return a.m_upper; }
 | 
					        numeral const & upper(interval const & a) const { return a.m_upper; }
 | 
				
			||||||
        numeral & lower(interval & a) { return a.m_lower; }
 | 
					        numeral & lower(interval & a) { return a.m_lower; }
 | 
				
			||||||
        numeral & upper(interval & a) { return a.m_upper; }
 | 
					        numeral & upper(interval & a) { return a.m_upper; }
 | 
				
			||||||
        bool lower_is_open(interval const & a) const { return a.m_lower_open; }
 | 
					        bool lower_is_open(interval const & a) const { return a.lower_is_open(); }
 | 
				
			||||||
        bool upper_is_open(interval const & a) const { return a.m_upper_open; }
 | 
					        bool upper_is_open(interval const & a) const { return a.upper_is_open(); }
 | 
				
			||||||
        bool lower_is_inf(interval const & a) const { return a.m_lower_inf; }
 | 
					        bool lower_is_inf(interval const & a) const { return a.lower_is_inf(); }
 | 
				
			||||||
        bool upper_is_inf(interval const & a) const { return a.m_upper_inf; }
 | 
					        bool upper_is_inf(interval const & a) const { return a.upper_is_inf(); }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        // Setters
 | 
					        // Setters
 | 
				
			||||||
        void set_lower(interval & a, numeral const & n) { m_manager.set(a.m_lower, n); }
 | 
					        void set_lower(interval & a, numeral const & n) { m_manager.set(a.m_lower, n); }
 | 
				
			||||||
| 
						 | 
					@ -637,7 +637,8 @@ namespace realclosure {
 | 
				
			||||||
                return; // interval was already saved.
 | 
					                return; // interval was already saved.
 | 
				
			||||||
            to_restore.push_back(v);
 | 
					            to_restore.push_back(v);
 | 
				
			||||||
            inc_ref(v);
 | 
					            inc_ref(v);
 | 
				
			||||||
            v->m_old_interval = new (allocator()) mpbqi();
 | 
						    void * mem = allocator().allocate(sizeof(mpbqi));
 | 
				
			||||||
 | 
					            v->m_old_interval = new (mem) mpbqi();
 | 
				
			||||||
            set_interval(*(v->m_old_interval), v->m_interval);
 | 
					            set_interval(*(v->m_old_interval), v->m_interval);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        void save_interval(value * v) {
 | 
					        void save_interval(value * v) {
 | 
				
			||||||
| 
						 | 
					@ -1201,7 +1202,8 @@ namespace realclosure {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        sign_condition * mk_sign_condition(unsigned qidx, int sign, sign_condition * prev_sc) {
 | 
					        sign_condition * mk_sign_condition(unsigned qidx, int sign, sign_condition * prev_sc) {
 | 
				
			||||||
            return new (allocator()) sign_condition(qidx, sign, prev_sc);
 | 
						    void * mem = allocator().allocate(sizeof(sign_condition));
 | 
				
			||||||
 | 
					            return new (mem) sign_condition(qidx, sign, prev_sc);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
| 
						 | 
					@ -1748,7 +1750,8 @@ namespace realclosure {
 | 
				
			||||||
           M and scs will be empty after this operation.
 | 
					           M and scs will be empty after this operation.
 | 
				
			||||||
        */
 | 
					        */
 | 
				
			||||||
        sign_det * mk_sign_det(mpz_matrix & M_s, scoped_polynomial_seq const & prs, int_buffer const & taqrs, scoped_polynomial_seq const & qs, scoped_sign_conditions & scs) {
 | 
					        sign_det * mk_sign_det(mpz_matrix & M_s, scoped_polynomial_seq const & prs, int_buffer const & taqrs, scoped_polynomial_seq const & qs, scoped_sign_conditions & scs) {
 | 
				
			||||||
            sign_det * r = new (allocator()) sign_det();
 | 
						    void * mem = allocator().allocate(sizeof(sign_det));
 | 
				
			||||||
 | 
					            sign_det * r = new (mem) sign_det();
 | 
				
			||||||
            r->M_s.swap(M_s);
 | 
					            r->M_s.swap(M_s);
 | 
				
			||||||
            set_array_p(r->m_prs, prs);
 | 
					            set_array_p(r->m_prs, prs);
 | 
				
			||||||
            r->m_taqrs.set(allocator(), taqrs.size(), taqrs.c_ptr());
 | 
					            r->m_taqrs.set(allocator(), taqrs.size(), taqrs.c_ptr());
 | 
				
			||||||
| 
						 | 
					@ -1763,7 +1766,8 @@ namespace realclosure {
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        algebraic * mk_algebraic(unsigned p_sz, value * const * p, mpbqi const & interval, sign_det * sd, unsigned sc_idx) {
 | 
					        algebraic * mk_algebraic(unsigned p_sz, value * const * p, mpbqi const & interval, sign_det * sd, unsigned sc_idx) {
 | 
				
			||||||
            unsigned idx = next_algebraic_idx();
 | 
					            unsigned idx = next_algebraic_idx();
 | 
				
			||||||
            algebraic * r = new (allocator()) algebraic(idx);
 | 
						    void * mem = allocator().allocate(sizeof(algebraic));
 | 
				
			||||||
 | 
					            algebraic * r = new (mem) algebraic(idx);
 | 
				
			||||||
            m_extensions[extension::ALGEBRAIC].push_back(r);
 | 
					            m_extensions[extension::ALGEBRAIC].push_back(r);
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            set_p(r->m_p, p_sz, p);
 | 
					            set_p(r->m_p, p_sz, p);
 | 
				
			||||||
| 
						 | 
					@ -2495,7 +2499,8 @@ namespace realclosure {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        rational_value * mk_rational() {
 | 
					        rational_value * mk_rational() {
 | 
				
			||||||
            return new (allocator()) rational_value();
 | 
						    void * mem = allocator().allocate(sizeof(rational_value));
 | 
				
			||||||
 | 
					            return new (mem) rational_value();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -267,10 +267,10 @@ namespace realclosure {
 | 
				
			||||||
        void clean_denominators(numeral const & a, numeral & p, numeral & q);
 | 
					        void clean_denominators(numeral const & a, numeral & p, numeral & q);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class value;
 | 
					    struct value;
 | 
				
			||||||
    class num {
 | 
					    class num {
 | 
				
			||||||
        friend class manager;
 | 
					        friend class manager;
 | 
				
			||||||
        friend class manager::imp;
 | 
					        friend struct manager::imp;
 | 
				
			||||||
        value * m_value;
 | 
					        value * m_value;
 | 
				
			||||||
    public:
 | 
					    public:
 | 
				
			||||||
        num():m_value(0) {}
 | 
					        num():m_value(0) {}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    array & operator=(array const & source);
 | 
					    array & operator=(array const & source);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void set_data(void * mem, size_t sz) {
 | 
					    void set_data(void * mem, unsigned sz) {
 | 
				
			||||||
        size_t * _mem = static_cast<size_t*>(mem);
 | 
					        size_t * _mem = static_cast<size_t*>(mem);
 | 
				
			||||||
        *_mem = sz; 
 | 
					        *_mem = sz; 
 | 
				
			||||||
        _mem ++;
 | 
					        _mem ++;
 | 
				
			||||||
| 
						 | 
					@ -48,7 +48,7 @@ private:
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    void allocate(Allocator & a, size_t sz) {
 | 
					    void allocate(Allocator & a, unsigned sz) {
 | 
				
			||||||
        size_t * mem  = reinterpret_cast<size_t*>(a.allocate(space(sz)));
 | 
					        size_t * mem  = reinterpret_cast<size_t*>(a.allocate(space(sz)));
 | 
				
			||||||
        set_data(mem, sz);
 | 
					        set_data(mem, sz);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -80,13 +80,13 @@ public:
 | 
				
			||||||
       \brief Store the array in the given chunk of memory (mem).
 | 
					       \brief Store the array in the given chunk of memory (mem).
 | 
				
			||||||
       This chunck should be big enough to store space(sz) bytes.
 | 
					       This chunck should be big enough to store space(sz) bytes.
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
    array(void * mem, size_t sz, T const * vs) {
 | 
					    array(void * mem, unsigned sz, T const * vs) {
 | 
				
			||||||
        DEBUG_CODE(m_data = 0;);
 | 
					        DEBUG_CODE(m_data = 0;);
 | 
				
			||||||
        set(mem, sz, vs);
 | 
					        set(mem, sz, vs);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // WARNING: the memory allocated will not be automatically freed.
 | 
					    // WARNING: the memory allocated will not be automatically freed.
 | 
				
			||||||
    array(void * mem, size_t sz, bool init_mem) {
 | 
					    array(void * mem, unsigned sz, bool init_mem) {
 | 
				
			||||||
        DEBUG_CODE(m_data = 0;);
 | 
					        DEBUG_CODE(m_data = 0;);
 | 
				
			||||||
        set_data(mem, sz);
 | 
					        set_data(mem, sz);
 | 
				
			||||||
        if (init_mem)
 | 
					        if (init_mem)
 | 
				
			||||||
| 
						 | 
					@ -95,14 +95,14 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // WARNING: the memory allocated will not be automatically freed.
 | 
					    // WARNING: the memory allocated will not be automatically freed.
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    array(Allocator & a, size_t sz, T const * vs) {
 | 
					    array(Allocator & a, unsigned sz, T const * vs) {
 | 
				
			||||||
        DEBUG_CODE(m_data = 0;);
 | 
					        DEBUG_CODE(m_data = 0;);
 | 
				
			||||||
        set(a, sz, vs);
 | 
					        set(a, sz, vs);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // WARNING: the memory allocated will not be automatically freed.
 | 
					    // WARNING: the memory allocated will not be automatically freed.
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    array(Allocator & a, size_t sz, bool init_mem) {
 | 
					    array(Allocator & a, unsigned sz, bool init_mem) {
 | 
				
			||||||
        DEBUG_CODE(m_data = 0;);
 | 
					        DEBUG_CODE(m_data = 0;);
 | 
				
			||||||
        allocate(a, sz);
 | 
					        allocate(a, sz);
 | 
				
			||||||
        if (init_mem)
 | 
					        if (init_mem)
 | 
				
			||||||
| 
						 | 
					@ -127,41 +127,41 @@ public:
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void set(void * mem, size_t sz, T const * vs) {
 | 
					    void set(void * mem, unsigned sz, T const * vs) {
 | 
				
			||||||
        SASSERT(m_data == 0);
 | 
					        SASSERT(m_data == 0);
 | 
				
			||||||
        set_data(mem, sz);
 | 
					        set_data(mem, sz);
 | 
				
			||||||
        init(vs);
 | 
					        init(vs);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    void set(Allocator & a, size_t sz, T const * vs) {
 | 
					    void set(Allocator & a, unsigned sz, T const * vs) {
 | 
				
			||||||
        SASSERT(m_data == 0);
 | 
					        SASSERT(m_data == 0);
 | 
				
			||||||
        allocate(a, sz);
 | 
					        allocate(a, sz);
 | 
				
			||||||
        init(vs);
 | 
					        init(vs);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    void set(Allocator & a, size_t sz, T const & v = T()) {
 | 
					    void set(Allocator & a, unsigned sz, T const & v = T()) {
 | 
				
			||||||
        SASSERT(m_data == 0);
 | 
					        SASSERT(m_data == 0);
 | 
				
			||||||
        allocate(a, sz);
 | 
					        allocate(a, sz);
 | 
				
			||||||
        init(v);
 | 
					        init(v);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    size_t size() const { 
 | 
					    unsigned size() const { 
 | 
				
			||||||
        if (m_data == 0) {
 | 
					        if (m_data == 0) {
 | 
				
			||||||
            return 0;  
 | 
					            return 0;  
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return reinterpret_cast<size_t *>(m_data)[SIZE_IDX]; 
 | 
					        return static_cast<unsigned>(reinterpret_cast<size_t *>(m_data)[SIZE_IDX]); 
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    bool empty() const { return m_data == 0; }
 | 
					    bool empty() const { return m_data == 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    T & operator[](size_t idx) { 
 | 
					    T & operator[](unsigned idx) { 
 | 
				
			||||||
        SASSERT(idx < size()); 
 | 
					        SASSERT(idx < size()); 
 | 
				
			||||||
        return m_data[idx]; 
 | 
					        return m_data[idx]; 
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    T const & operator[](size_t idx) const { 
 | 
					    T const & operator[](unsigned idx) const { 
 | 
				
			||||||
        SASSERT(idx < size()); 
 | 
					        SASSERT(idx < size()); 
 | 
				
			||||||
        return m_data[idx];
 | 
					        return m_data[idx];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -195,24 +195,24 @@ template<typename T>
 | 
				
			||||||
class ptr_array : public array<T *, false> {
 | 
					class ptr_array : public array<T *, false> {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
    ptr_array() {}
 | 
					    ptr_array() {}
 | 
				
			||||||
    ptr_array(void * mem, size_t sz, T * const * vs):array<T*, false>(mem, sz, vs) {}
 | 
					    ptr_array(void * mem, unsigned sz, T * const * vs):array<T*, false>(mem, sz, vs) {}
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    ptr_array(Allocator & a, size_t sz, T * const * vs):array<T*, false>(a, sz, vs) {}
 | 
					    ptr_array(Allocator & a, unsigned sz, T * const * vs):array<T*, false>(a, sz, vs) {}
 | 
				
			||||||
    ptr_array(void * mem, size_t sz, bool init_mem):array<T*, false>(mem, sz, init_mem) {}
 | 
					    ptr_array(void * mem, unsigned sz, bool init_mem):array<T*, false>(mem, sz, init_mem) {}
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    ptr_array(Allocator & a, size_t sz, bool init_mem):array<T*, false>(a, sz, init_mem) {}
 | 
					    ptr_array(Allocator & a, unsigned sz, bool init_mem):array<T*, false>(a, sz, init_mem) {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template<typename T>
 | 
					template<typename T>
 | 
				
			||||||
class sarray : public array<T, false> {
 | 
					class sarray : public array<T, false> {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
    sarray() {}
 | 
					    sarray() {}
 | 
				
			||||||
    sarray(void * mem, size_t sz, T const * vs):array<T, false>(mem, sz, vs) {}
 | 
					    sarray(void * mem, unsigned sz, T const * vs):array<T, false>(mem, sz, vs) {}
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    sarray(Allocator & a, size_t sz, T const * vs):array<T, false>(a, sz, vs) {}
 | 
					    sarray(Allocator & a, unsigned sz, T const * vs):array<T, false>(a, sz, vs) {}
 | 
				
			||||||
    sarray(void * mem, size_t sz, bool init_mem):array<T, false>(mem, sz, init_mem) {}
 | 
					    sarray(void * mem, unsigned sz, bool init_mem):array<T, false>(mem, sz, init_mem) {}
 | 
				
			||||||
    template<typename Allocator>
 | 
					    template<typename Allocator>
 | 
				
			||||||
    sarray(Allocator & a, size_t sz, bool init_mem):array<T, false>(a, sz, init_mem) {}
 | 
					    sarray(Allocator & a, unsigned sz, bool init_mem):array<T, false>(a, sz, init_mem) {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue