APRONXX  0.9.12
/home/mine/apron/apronxx/apxx_var.hh
Go to the documentation of this file.
1 /* -*- C++ -*-
2  * apxx_var.hh
3  *
4  * APRON Library / C++ class wrappers
5  *
6  * Copyright (C) Antoine Mine' 2007
7  *
8  */
9 /* This file is part of the APRON Library, released under LGPL license
10  with an exception allowing the redistribution of statically linked
11  executables.
12 
13  Please read the COPYING file packaged in the distribution.
14 */
15 
16 #ifndef __APXX_VAR_HH
17 #define __APXX_VAR_HH
18 
19 #include "ap_var.h"
20 
21 
22 namespace apron {
23 
24 
25 /* ================================= */
26 /* var */
27 /* ================================= */
28 
29 
39 class var {
40 
41 protected:
42  ap_var_t v;
43 
44 public:
45 
46  /* constructors */
47  /* ============ */
48 
51 
53  var(const void* x);
54 
56  var(const std::string& x);
57 
59  var(const var& x);
60 
62 
63 
64  /* destructor */
65  /* ========== */
66 
69 
71  ~var();
72 
74 
75 
76  /* assignments */
77  /* =========== */
78 
81 
83  var& operator=(const var& x);
84 
86  var& operator=(const std::string& x);
87 
89  var& operator=(const void* x);
90 
92 
93 
94  /* conversions */
95  /* =========== */
96 
99 
104  operator char*() const;
105 
107  operator std::string() const;
108 
110 
112  /* comparisons */
113  /* =========== */
114 
117 
119  friend int compare(const var& x, const var& y);
120 
122  friend bool operator==(const var& x, const var& y);
123 
125  friend bool operator!=(const var& x, const var& y);
126 
128  friend bool operator>=(const var& x, const var& y);
129 
131  friend bool operator<=(const var& x, const var& y);
132 
134  friend bool operator>(const var& x, const var& y);
135 
137  friend bool operator<(const var& x, const var& y);
138 
140 
141 
142  /* print */
143  /* ===== */
144 
147 
149  friend std::ostream& operator<< (std::ostream& os, const var& s);
150 
152  void print(FILE* stream=stdout) const;
153 
155 
156 
157  /* C-level compatibility */
158  /* ===================== */
159 
164  const ap_var_t& get_ap_var_t() const;
165 
167  ap_var_t& get_ap_var_t();
168 
170 
171 };
172 
173 #include "apxx_var_inline.hh"
174 
175 }
176 
177 
178 #endif /* __APXX_VAR_HH */
Definition: apxx_abstract0.hh:27
Variable name (ap_var_t wrapper).
Definition: apxx_var.hh:39
var(const void *x)
Makes a variable name from a pointer (copied with ap_var_operations->copy).
Definition: apxx_var.hh:28
void print(FILE *stream=stdout) const
Prints to a C stream.
Definition: apxx_var.hh:145
friend bool operator==(const var &x, const var &y)
Compares two variables names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:106
ap_var_t & get_ap_var_t()
Returns a (modifiable) reference to the APRON object wrapped (no copy).
Definition: apxx_var.hh:162
friend bool operator<(const var &x, const var &y)
Compares two variable names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:131
friend int compare(const var &x, const var &y)
Compares two variable names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:101
var & operator=(const var &x)
Assigns the variable name (calls ap_var_operations->copy, ->free).
Definition: apxx_var.hh:56
~var()
Frees the variable name (calls ap_var_operations->free).
Definition: apxx_var.hh:47
const ap_var_t & get_ap_var_t() const
Returns a reference to the APRON object wrapped (no copy).
Definition: apxx_var.hh:157
friend bool operator>=(const var &x, const var &y)
Compares two variable names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:116
friend bool operator>(const var &x, const var &y)
Compares two variable names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:126
friend bool operator!=(const var &x, const var &y)
Compares two variable names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:111
ap_var_t v
Definition: apxx_var.hh:42
friend bool operator<=(const var &x, const var &y)
Compares two variable names (calls ap_var_operations->to_compare).
Definition: apxx_var.hh:121
friend std::ostream & operator<<(std::ostream &os, const var &s)
Printing.
Definition: apxx_var.hh:139