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>&
119 operator <<(std::basic_ostream<Char,Traits>& os,
const IntScaleView& x) {
120 return print_scale<Char,Traits,int,unsigned int>(os,x);
122 template<
class Char,
class Traits>
123 inline std::basic_ostream<Char,Traits>&
124 operator <<(std::basic_ostream<Char,Traits>& os,
const DoubleScaleView& x) {
125 return print_scale<Char,Traits,double,double>(os,x);
128 template<
class Char,
class Traits>
129 inline std::basic_ostream<Char,Traits>&
130 operator <<(std::basic_ostream<Char,Traits>& os,
const ConstIntView& x) {
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]";