mosra/corrade — pull request #14 by chris-chambers (2014-07-10 15:07:57+00:00)
Title: Debug: Fixes ambiguous overload issues in ostream fallback.

Debug passthrough to `std::ostream&` now uses a templated `operator<<` that will apply when a type:

- can be streamed to `std::ostream&`
- is not integral (handled explicitly)
- is not iterable (handled explicitly)

When those conditions are met, a `DebugOstreamPassthrough` object is constructed to capture the type's `operator<<(std::ostream&)` operation, and uses it to render the value.

I've tested this change against the various kinds of ambiguity we've discovered and they are all resolved correctly. Magnum builds with or without the recent `std::streampos`/`std::streamoff` change.