Move std::ostream << CaptureLog logic into CaptureLog::streamto().
That lets us reliably declare the operator<<() free function inline, which permits multiple translation units in the same executable to #include "wrapllerrs.h".meow-7.2.2
parent
30e8e23d7c
commit
b3b51f012f
|
|
@ -136,25 +136,31 @@ public:
|
|||
<< *this));
|
||||
}
|
||||
|
||||
std::ostream& streamto(std::ostream& out) const
|
||||
{
|
||||
MessageList::const_iterator mi(mMessages.begin()), mend(mMessages.end());
|
||||
if (mi != mend)
|
||||
{
|
||||
// handle first message separately: it doesn't get a newline
|
||||
out << *mi++;
|
||||
for ( ; mi != mend; ++mi)
|
||||
{
|
||||
// every subsequent message gets a newline
|
||||
out << '\n' << *mi;
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
typedef std::list<std::string> MessageList;
|
||||
MessageList mMessages;
|
||||
LLError::Settings* mOldSettings;
|
||||
};
|
||||
|
||||
inline
|
||||
std::ostream& operator<<(std::ostream& out, const CaptureLog& log)
|
||||
{
|
||||
CaptureLog::MessageList::const_iterator mi(log.mMessages.begin()), mend(log.mMessages.end());
|
||||
if (mi != mend)
|
||||
{
|
||||
// handle first message separately: it doesn't get a newline
|
||||
out << *mi++;
|
||||
for ( ; mi != mend; ++mi)
|
||||
{
|
||||
// every subsequent message gets a newline
|
||||
out << '\n' << *mi;
|
||||
}
|
||||
}
|
||||
return out;
|
||||
return log.streamto(out);
|
||||
}
|
||||
|
||||
#endif /* ! defined(LL_WRAPLLERRS_H) */
|
||||
|
|
|
|||
Loading…
Reference in New Issue