}
template <class A>
-typename enable_if<is_iterable<A>::value && !is_same<A,string>::value, ostream>::type &
+typename enable_if<is_const_iterable<A>::value && !is_same<A,string>::value, ostream>::type &
operator<<(ostream &o, const A &a) {
return o << "[" << implode(a, ", ") << "]";
}
int _self_ = instance_name_map[this]; \
if (_self_==0) \
_self_ = instance_name_map[this] = ++next_instance_num; \
- cerr << "#" << setw(2) << " " << _self_; \
+ cerr << "#" << left << setw(2) << _self_ << " "; \
}
#define LOG_NONMEMBER(_x_) { \