<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/include/internal/catch_stream.h, branch v2.13.5</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Forbid copying ReusableStringStream</title>
<updated>2019-11-03T23:05:35+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-11-03T23:05:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=95bfb331674ffe5abd411ddaceb86896f97dca08'/>
<id>95bfb331674ffe5abd411ddaceb86896f97dca08</id>
<content type='text'>
Copying a `ReusableStringStream` would lead to "double free" of
the stream, and thus it could be used in multiple places at the
same time, breaking the output.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Copying a `ReusableStringStream` would lead to "double free" of
the stream, and thus it could be used in multiple places at the
same time, breaking the output.
</pre>
</div>
</content>
</entry>
<entry>
<title>Moved ReusableStringStream impl to generic singleton</title>
<updated>2018-08-19T09:28:46+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2018-06-15T20:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d6f2fd486cf3e124d80f8643c723d475c6bad6e9'/>
<id>d6f2fd486cf3e124d80f8643c723d475c6bad6e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean-up re-usable string streams</title>
<updated>2017-11-24T08:46:17+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-11-24T08:46:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=091595780e4f330f1fd74e9d8caf5d509d195491'/>
<id>091595780e4f330f1fd74e9d8caf5d509d195491</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduced ReusableStringStream and removed all uses of std::ostringstream from the main path</title>
<updated>2017-11-07T18:01:10+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-11-07T18:01:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=56e107561362147dc13f63294a9a5b90b855697b'/>
<id>56e107561362147dc13f63294a9a5b90b855697b</id>
<content type='text'>
ReusableStringStream holds a std::ostringstream internally, but only exposes the ostream interface.
It caches a pool of ostringstreams in a vector which is currently global, but will be made thread-local.

Altogether this should enable both runtime and compile-time benefits. although more work is needed to realise the compile time opportunities.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ReusableStringStream holds a std::ostringstream internally, but only exposes the ostream interface.
It caches a pool of ostringstreams in a vector which is currently global, but will be made thread-local.

Altogether this should enable both runtime and compile-time benefits. although more work is needed to realise the compile time opportunities.
</pre>
</div>
</content>
</entry>
<entry>
<title>Moved a lot of stream related stuff out of the public headers and replaced more ostream dependencies with iosfwd</title>
<updated>2017-11-07T15:55:09+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-11-07T15:55:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=868e125d49ca85f7cab04e847f03244291d3f4f7'/>
<id>868e125d49ca85f7cab04e847f03244291d3f4f7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Sweep out some extra warnings</title>
<updated>2017-09-07T15:25:15+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-09-07T14:51:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9aa96712aec495d5a0d580f773c292803cc662aa'/>
<id>9aa96712aec495d5a0d580f773c292803cc662aa</id>
<content type='text'>
Swept:
`-Wpadded` in some places (where it caused extra size, instead of just
saying "hey, we padded struct at the end to align, just as standard says")
`-Wweak-vtables` everywhere (Clang)
`-Wexit-time-destructors` everywhere (Clang)
`-Wmissing-noreturn` everywhere (Clang)

The last three are enabled for Clang compilation going forward.

Also enabled `-Wunreachable-code` for Clang and GCC
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Swept:
`-Wpadded` in some places (where it caused extra size, instead of just
saying "hey, we padded struct at the end to align, just as standard says")
`-Wweak-vtables` everywhere (Clang)
`-Wexit-time-destructors` everywhere (Clang)
`-Wmissing-noreturn` everywhere (Clang)

The last three are enabled for Clang compilation going forward.

Also enabled `-Wunreachable-code` for Clang and GCC
</pre>
</div>
</content>
</entry>
<entry>
<title>Move session to internal, split apart implementation</title>
<updated>2017-08-31T08:31:52+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-08-31T08:31:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e87174253480c4bd5237350a246b042269c70561'/>
<id>e87174253480c4bd5237350a246b042269c70561</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' into dev-modernize</title>
<updated>2017-08-10T09:34:26+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-08-10T09:34:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=aa42dd92d104e894e2b54d29a3defdf4b00eec21'/>
<id>aa42dd92d104e894e2b54d29a3defdf4b00eec21</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Capture std::clog writes and combine them with std::cerr writes (#989)</title>
<updated>2017-08-09T13:28:40+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-08-09T13:28:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=7e4038d8488596e850a11c8fe236b59bca605444'/>
<id>7e4038d8488596e850a11c8fe236b59bca605444</id>
<content type='text'>
This also introduces Catch::clog() method to allow embedded targets
to override std::clog usage with their own stream (presumably null-sink),
similarly to how Catch::cout() and Catch::cerr() are used.

Fixes #989
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This also introduces Catch::clog() method to allow embedded targets
to override std::clog usage with their own stream (presumably null-sink),
similarly to how Catch::cout() and Catch::cerr() are used.

Fixes #989
</pre>
</div>
</content>
</entry>
<entry>
<title>removed redundant virtuals on override functions (and added a couple of overrides)</title>
<updated>2017-07-20T15:23:52+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-07-20T14:57:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f0890dcdf89d305862d0ba3518752c4becb65773'/>
<id>f0890dcdf89d305862d0ba3518752c4becb65773</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
