inline void example_print_error_common( Error& error, std::ostream& errstr ) { example_print_std_error_common(error, errstr); errstr << "in '" << error.GLSymbol() << "'" << std::endl; errstr << "at ["; errstr << error.File() << ":" << error.Line(); errstr << "]" << std::endl; bool nl = false; if(std::strlen(error.ClassName())) { errstr << error.ClassName(); nl |= true; } if(!error.ObjectDescription().empty()) { if(nl) errstr << " "; errstr << "'" << error.ObjectDescription() << "'"; nl |= true; } if(std::strlen(error.BindTarget())) { if(!nl) errstr << "Object"; errstr << " bound to '" << error.BindTarget() << "'"; nl |= true; } if(nl) errstr << std::endl; auto i = error.Properties().begin(), e = error.Properties().end(); if(i != e) { errstr << "Properties: " << std::endl; while(i != e) { errstr << "<" << i->first << "='" << i->second << "'>"; ++i; if(i != e) errstr << ", "; else errstr << "."; } errstr << std::endl; } }