<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/catch_all.hpp, branch v3.0.0-preview3</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>Improve detection of std::uncaught_exceptions support</title>
<updated>2020-10-08T10:39:50+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-10-06T09:07:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3f9e779542eac5576b54987614b77a1260ecdbac'/>
<id>3f9e779542eac5576b54987614b77a1260ecdbac</id>
<content type='text'>
The problem was that Catch2 did not reliably include `&lt;exception&gt;`
before it checked for the feature test macro for
`std::uncaught_exceptions`. To avoid overhead of including
`&lt;exception&gt;` everywhere, the configuration check was split out
into a separate header.

Closes #2021
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The problem was that Catch2 did not reliably include `&lt;exception&gt;`
before it checked for the feature test macro for
`std::uncaught_exceptions`. To avoid overhead of including
`&lt;exception&gt;` everywhere, the configuration check was split out
into a separate header.

Closes #2021
</pre>
</div>
</content>
</entry>
<entry>
<title>Add standardized copyright notice + SPDX identifier to source files</title>
<updated>2020-08-30T13:43:45+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-30T13:43:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=90aeffb97d6942d16f75a56b11e10fc0b010995a'/>
<id>90aeffb97d6942d16f75a56b11e10fc0b010995a</id>
<content type='text'>
This should also be done for test files, but that has lower priority.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should also be done for test files, but that has lower priority.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split out CaseSensitive enum out of catch_common.hpp</title>
<updated>2020-08-18T19:02:25+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-18T11:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6a46b344c02b2548b11e4b66f95618bd5c90d110'/>
<id>6a46b344c02b2548b11e4b66f95618bd5c90d110</id>
<content type='text'>
Only very few places actually use it, so there is no need to have
it be central to everywhere.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only very few places actually use it, so there is no need to have
it be central to everywhere.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split the NonCopyable helper out of catch_common.hpp</title>
<updated>2020-08-18T19:02:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-18T09:35:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e7eb74981513364e6543aeec30446fda4c9a3de9'/>
<id>e7eb74981513364e6543aeec30446fda4c9a3de9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Clara cleanups</title>
<updated>2020-08-10T18:30:40+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-08T16:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=24b83edf8aca78c975c5589baf22a5de311498a7'/>
<id>24b83edf8aca78c975c5589baf22a5de311498a7</id>
<content type='text'>
* Clara is now split between a header and a cpp file.
* Removed the deprecated `+` and `+=` operators for composing
  a parser.
* Renamed `clara` and `detail` namespaces to be inline with the
rest of Catch2 (they are now `Clara` and `Detail` respectively).
* Taken most of user-exposed types out of the `Detail` namespace
completely (instead of using `using` directives to bring them into
the outer namespace).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Clara is now split between a header and a cpp file.
* Removed the deprecated `+` and `+=` operators for composing
  a parser.
* Renamed `clara` and `detail` namespaces to be inline with the
rest of Catch2 (they are now `Clara` and `Detail` respectively).
* Taken most of user-exposed types out of the `Detail` namespace
completely (instead of using `using` directives to bring them into
the outer namespace).
</pre>
</div>
</content>
</entry>
<entry>
<title>Split TextFlow out from Clara</title>
<updated>2020-08-03T21:40:14+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-01T18:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e7aa432850c34557e857d8675bff9b3f03de41b8'/>
<id>e7aa432850c34557e857d8675bff9b3f03de41b8</id>
<content type='text'>
Now that it has its own header, various reporter TUs that want to
format text do not have to also include Clara. Together with
outlining implementations from a header into a separate TU, this
has noticeably improved the compilation times of the testing impl.

As part of this split, I also implemented some improvements to the
TextFlow code in comparison to the upstream code. These are:

* Replaced the `Spacer` type with a free function that constructs
special `Column` that does the same thing.
* Generic performance improvements, such as eliminating needless
allocations, reserving space in needed allocations, and using smarter
algorithms in some places.
* Because `Column` only ever stored 1 string in its vector, it now
holds the string directly instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that it has its own header, various reporter TUs that want to
format text do not have to also include Clara. Together with
outlining implementations from a header into a separate TU, this
has noticeably improved the compilation times of the testing impl.

As part of this split, I also implemented some improvements to the
TextFlow code in comparison to the upstream code. These are:

* Replaced the `Spacer` type with a free function that constructs
special `Column` that does the same thing.
* Generic performance improvements, such as eliminating needless
allocations, reserving space in needed allocations, and using smarter
algorithms in some places.
* Because `Column` only ever stored 1 string in its vector, it now
holds the string directly instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split out default CATCH_CONFIG_CONSOLE_WIDTH into its own header</title>
<updated>2020-08-03T20:57:43+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-01T17:09:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a4ac07d1049e8cafdd5b9ab551055a6bddcc132d'/>
<id>a4ac07d1049e8cafdd5b9ab551055a6bddcc132d</id>
<content type='text'>
This means that code that uses it no longer has to include all of
catch_config.hpp, which seems to provide significant reduction in
size of unoptimized compilation of the final static library.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This means that code that uses it no longer has to include all of
catch_config.hpp, which seems to provide significant reduction in
size of unoptimized compilation of the final static library.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement a simplified variant of std::unique_ptr&lt;T&gt;</title>
<updated>2020-05-31T13:08:47+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-24T21:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=41bbaa6d573a598fe0796fd0e391ed57eae62e30'/>
<id>41bbaa6d573a598fe0796fd0e391ed57eae62e30</id>
<content type='text'>
This simplified variant supports only a subset of the functionality
in `std::unique_ptr&lt;T&gt;`. `Catch::Detail::unique_ptr&lt;T&gt;` only supports
single element pointer (no array support) with default deleter.

By removing the support for custom deleters, we also avoid requiring
significant machinery to support EBO, speeding up instantiations of
`unique_ptr&lt;T&gt;` significantly. Catch2 also currently does not need
to support `unique_ptr&lt;T[]&gt;`, so that is not supported either.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This simplified variant supports only a subset of the functionality
in `std::unique_ptr&lt;T&gt;`. `Catch::Detail::unique_ptr&lt;T&gt;` only supports
single element pointer (no array support) with default deleter.

By removing the support for custom deleters, we also avoid requiring
significant machinery to support EBO, speeding up instantiations of
`unique_ptr&lt;T&gt;` significantly. Catch2 also currently does not need
to support `unique_ptr&lt;T[]&gt;`, so that is not supported either.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split CATCH_TRANSLATE_EXCEPTION into its own header</title>
<updated>2020-05-20T06:15:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-19T19:16:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4b2f1da02a37d111b572551f4bd8ed765b06ca28'/>
<id>4b2f1da02a37d111b572551f4bd8ed765b06ca28</id>
<content type='text'>
As far as I know, only a few users actually use it, but these changes
allow us to avoid including a surprising amount of code in the main
compilation path.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As far as I know, only a few users actually use it, but these changes
allow us to avoid including a surprising amount of code in the main
compilation path.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split out LazyExpr into its own header</title>
<updated>2020-05-10T18:21:02+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-10T17:19:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=27f1756d8e7d2a59832cac83f3219c9ebd286abf'/>
<id>27f1756d8e7d2a59832cac83f3219c9ebd286abf</id>
<content type='text'>
This enables us to avoid `catch_reporter_bases.hpp` being indirectly
dependent on `catch_tostring.hpp`, cutting apart quite a bit indirect
inclusions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables us to avoid `catch_reporter_bases.hpp` being indirectly
dependent on `catch_tostring.hpp`, cutting apart quite a bit indirect
inclusions.
</pre>
</div>
</content>
</entry>
</feed>
