| 13285 | } |
| 13286 | |
| 13287 | void printRemainingMessages(Colour::Code colour = dimColour()) { |
| 13288 | if (itMessage == messages.end()) |
| 13289 | return; |
| 13290 | |
| 13291 | // using messages.end() directly yields (or auto) compilation error: |
| 13292 | std::vector<MessageInfo>::const_iterator itEnd = messages.end(); |
| 13293 | const std::size_t N = static_cast<std::size_t>(std::distance(itMessage, itEnd)); |
| 13294 | |
| 13295 | { |
| 13296 | Colour colourGuard(colour); |
| 13297 | stream << " with " << pluralise(N, "message") << ':'; |
| 13298 | } |
| 13299 | |
| 13300 | for (; itMessage != itEnd; ) { |
| 13301 | // If this assertion is a warning ignore any INFO messages |
| 13302 | if (printInfoMessages || itMessage->type != ResultWas::Info) { |
| 13303 | stream << " '" << itMessage->message << '\''; |
| 13304 | if (++itMessage != itEnd) { |
| 13305 | Colour colourGuard(dimColour()); |
| 13306 | stream << " and"; |
| 13307 | } |
| 13308 | } |
| 13309 | } |
| 13310 | } |
| 13311 | |
| 13312 | private: |
| 13313 | std::ostream& stream; |