Exemple #1
0
std::ostream & operator<<(std::ostream & os, const exmap & e)
{
	print_context *p = get_print_context(os);
	auto i = e.begin();
	auto mend = e.end();

	if (i==mend) {
		os << "{}";
		return os;
	}

	os << "{";
	while (true) {
		if (p == nullptr)
			i->first.print(print_dflt(os));
		else
			i->first.print(*p);
		os << "==";
		if (p == nullptr)
			i->second.print(print_dflt(os));
		else
			i->second.print(*p);
		++i;
		if( i==mend )
			break;
		os << ",";
	}
	os << "}";

	return os;
}
Exemple #2
0
std::ostream & operator<<(std::ostream & os, const exset & e)
{
	print_context *p = get_print_context(os);
	auto i = e.begin();
	auto send = e.end();

	if (i==send) {
		os << "<>";
		return os;
	}

	os << "<";
	while (true) {
		if (p == nullptr)
			i->print(print_dflt(os));
		else
			i->print(*p);
		++i;
		if (i == send)
			break;
		os << ",";
	}
	os << ">";

	return os;
}
Exemple #3
0
std::ostream & operator<<(std::ostream & os, const exvector & e)
{
	print_context *p = get_print_context(os);
	exvector::const_iterator i = e.begin();
	exvector::const_iterator vend = e.end();

	if (i==vend) {
		os << "[]";
		return os;
	}

	os << "[";
	while (true) {
		if (p == 0)
			i -> print(print_dflt(os));
		else
			i -> print(*p);
		++i;
		if (i==vend)
			break;
		os << ",";
	}
	os << "]";

	return os;
}
Exemple #4
0
// Set options for print_context associated with stream
static void set_print_options(std::ostream & s, unsigned options)
{
	print_context *p = get_print_context(s);
	if (p == nullptr)
		set_print_context(s, print_dflt(s, options));
	else
		p->options = options;
}
Exemple #5
0
std::ostream & operator<<(std::ostream & os, const ex & e)
{
	print_context *p = get_print_context(os);
	if (p == nullptr)
		e.print(print_dflt(os));
	else
		e.print(*p);
	return os;
}
Exemple #6
0
// Get options for print_context associated with stream
static inline unsigned get_print_options(std::ios_base & s)
{
	print_context *p = get_print_context(s);
	return p ? p->options : 0;
}