40 namespace Gecode {
namespace Int {
42 template<
class Char,
class Traits,
class View>
43 std::basic_ostream<Char,Traits>&
44 print_view(std::basic_ostream<Char,Traits>& os,
const View&
x) {
45 std::basic_ostringstream<Char,Traits> s;
46 s.copyfmt(os); s.width(0);
49 }
else if (x.range()) {
50 s <<
'[' << x.min() <<
".." << x.max() <<
']';
58 s << r.
min() <<
".." << r.
max();
69 template<
class Char,
class Traits,
class Val,
class UnsVal>
70 std::basic_ostream<Char,Traits>&
73 std::basic_ostringstream<Char,Traits> s;
74 s.copyfmt(os); s.width(0);
84 s << r.
min() <<
".." << r.
max();
95 template<
class Char,
class Traits>
96 inline std::basic_ostream<Char,Traits>&
97 operator <<(std::basic_ostream<Char,Traits>& os,
const IntView&
x) {
100 template<
class Char,
class Traits>
101 inline std::basic_ostream<Char,Traits>&
102 operator <<(std::basic_ostream<Char,Traits>& os,
const MinusView&
x) {
105 template<
class Char,
class Traits>
106 inline std::basic_ostream<Char,Traits>&
107 operator <<(std::basic_ostream<Char,Traits>& os,
const OffsetView&
x) {
110 template<
class Char,
class Traits,
class View>
111 inline std::basic_ostream<Char,Traits>&
112 operator <<(std::basic_ostream<Char,Traits>& os,
117 template<
class Char,
class Traits>
118 inline std::basic_ostream<Char,Traits>&
120 return print_scale<Char,Traits,int,unsigned int>(os,
x);
122 template<
class Char,
class Traits>
123 inline std::basic_ostream<Char,Traits>&
125 return print_scale<Char,Traits,long long int,unsigned long long int>(os,
x);
128 template<
class Char,
class Traits>
129 inline std::basic_ostream<Char,Traits>&
131 return os <<
x.val();
133 template<
class Char,
class Traits>
134 inline std::basic_ostream<Char,Traits>&
135 operator <<(std::basic_ostream<Char,Traits>& os,
const ZeroIntView&) {
140 template<
class Char,
class Traits>
141 std::basic_ostream<Char,Traits>&
142 operator <<(std::basic_ostream<Char,Traits>& os,
const BoolView&
x) {
147 return os <<
"[0..1]";
149 template<
class Char,
class Traits>
150 std::basic_ostream<Char,Traits>&
151 operator <<(std::basic_ostream<Char,Traits>& os,
const NegBoolView&
x) {
156 return os <<
"[0..1]";
Scale integer view (template)
std::basic_ostream< Char, Traits > & print_scale(std::basic_ostream< Char, Traits > &os, const ScaleView< Val, UnsVal > &x)
Range iterator for integer views.
Val val(void) const
Return assigned value (only if assigned)
int min(void) const
Return smallest value of range.
bool assigned(void) const
Test whether view is assigned.
Integer view for integer variables.
Node * x
Pointer to corresponding Boolean expression node.
std::basic_ostream< Char, Traits > & print_view(std::basic_ostream< Char, Traits > &os, const View &x)
int max(void) const
Return largest value of range.
Gecode toplevel namespace
Boolean view for Boolean variables.