36 namespace Gecode {
namespace Int {
38 template<
class Char,
class Traits,
class View>
39 std::basic_ostream<Char,Traits>&
40 print_view(std::basic_ostream<Char,Traits>& os,
const View&
x) {
41 std::basic_ostringstream<Char,Traits> s;
42 s.copyfmt(os); s.width(0);
45 }
else if (x.range()) {
46 s <<
'[' << x.min() <<
".." << x.max() <<
']';
54 s << r.
min() <<
".." << r.
max();
65 template<
class Char,
class Traits,
class Val,
class UnsVal>
66 std::basic_ostream<Char,Traits>&
69 std::basic_ostringstream<Char,Traits> s;
70 s.copyfmt(os); s.width(0);
80 s << r.
min() <<
".." << r.
max();
91 template<
class Char,
class Traits>
92 inline std::basic_ostream<Char,Traits>&
93 operator <<(std::basic_ostream<Char,Traits>& os,
const IntView&
x) {
96 template<
class Char,
class Traits>
97 inline std::basic_ostream<Char,Traits>&
98 operator <<(std::basic_ostream<Char,Traits>& os,
const MinusView&
x) {
101 template<
class Char,
class Traits>
102 inline std::basic_ostream<Char,Traits>&
103 operator <<(std::basic_ostream<Char,Traits>& os,
const OffsetView&
x) {
106 template<
class Char,
class Traits,
class View>
107 inline std::basic_ostream<Char,Traits>&
108 operator <<(std::basic_ostream<Char,Traits>& os,
113 template<
class Char,
class Traits>
114 inline std::basic_ostream<Char,Traits>&
116 return print_scale<Char,Traits,int,unsigned int>(os,
x);
118 template<
class Char,
class Traits>
119 inline std::basic_ostream<Char,Traits>&
121 return print_scale<Char,Traits,long long int,unsigned long long int>(os,
x);
124 template<
class Char,
class Traits>
125 inline std::basic_ostream<Char,Traits>&
127 return os <<
x.val();
129 template<
class Char,
class Traits>
130 inline std::basic_ostream<Char,Traits>&
131 operator <<(std::basic_ostream<Char,Traits>& os,
const ZeroIntView&) {
136 template<
class Char,
class Traits>
137 std::basic_ostream<Char,Traits>&
138 operator <<(std::basic_ostream<Char,Traits>& os,
const BoolView&
x) {
143 return os <<
"[0..1]";
145 template<
class Char,
class Traits>
146 std::basic_ostream<Char,Traits>&
147 operator <<(std::basic_ostream<Char,Traits>& os,
const NegBoolView&
x) {
152 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.
Post propagator for SetVar SetOpType SetVar SetRelType r
Integer view for integer variables.
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.
Post propagator for SetVar x
Gecode toplevel namespace
Boolean view for Boolean variables.