<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal/catch_test_case_registry_impl.hpp, branch feature/property-combinators</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>Don't store extra copy of all `TestCaseInfo*` in `TestRegistry`</title>
<updated>2026-08-22T21:28:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-08-22T21:28:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ef3a728265292e6a1dbec727b0099d3d8b3f6420'/>
<id>ef3a728265292e6a1dbec727b0099d3d8b3f6420</id>
<content type='text'>
We used to store a full vector of "views" of the registered test infos,
so that it can be retrieved externally. However, the only user of that
interface left was `Session`, specifically `Session::applyFilenameAsTags`.

By moving the adding of the filename tags into the `ITestCaseRegistry`
interface, we avoid storing the vector and make the initial test registration
faster.

The new code is ugly and shows a design/layering issue, but no worse than
the previous approach did.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We used to store a full vector of "views" of the registered test infos,
so that it can be retrieved externally. However, the only user of that
interface left was `Session`, specifically `Session::applyFilenameAsTags`.

By moving the adding of the filename tags into the `ITestCaseRegistry`
interface, we avoid storing the vector and make the initial test registration
faster.

The new code is ugly and shows a design/layering issue, but no worse than
the previous approach did.
</pre>
</div>
</content>
</entry>
<entry>
<title>Preallocate test case vectors in TestRegistry</title>
<updated>2026-08-22T18:42:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-08-21T15:37:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9915f7250dcfc2c7bbd9e86c83b29438df39d856'/>
<id>9915f7250dcfc2c7bbd9e86c83b29438df39d856</id>
<content type='text'>
Preallocating to some reasonable and small number of tests avoids
much of the geometric-reallocation threashing at low sizes, without
taking up too much memory for tiny test binaries.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preallocating to some reasonable and small number of tests avoids
much of the geometric-reallocation threashing at low sizes, without
taking up too much memory for tiny test binaries.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mark some extra classes final</title>
<updated>2026-04-06T22:13:17+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-06T22:13:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=548e14a8c8147c5d20898d9d97809887ab89ad60'/>
<id>548e14a8c8147c5d20898d9d97809887ab89ad60</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Explicitly outline TestRegistry destructor into .cpp file</title>
<updated>2024-04-08T11:57:59+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-08T11:57:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cd8f97e6c7f6aaf332992f83bf9d7ee7f357f85e'/>
<id>cd8f97e6c7f6aaf332992f83bf9d7ee7f357f85e</id>
<content type='text'>
This fixes compilation issue with C++23 mode against libstdc++.

Closes #2852
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes compilation issue with C++23 mode against libstdc++.

Closes #2852
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove redundant destructors</title>
<updated>2024-01-14T22:33:51+00:00</updated>
<author>
<name>Chris Thrasher</name>
</author>
<published>2023-12-28T22:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=05786fa7ec66c19fa4699b5d21be3557a1b4161b'/>
<id>05786fa7ec66c19fa4699b5d21be3557a1b4161b</id>
<content type='text'>
Classes will automatically inherit the virtual-ness of their base
class destructors. If the base class already has a virtual
destructor and the derived class needs default destructor semantics
then the derived class can omit defining the destructor in favor of
the compiler automatically defining it.

This has an additional benefit of reenabling move semantics. The
presence of a user-specified destructor automatically disables move
operations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Classes will automatically inherit the virtual-ness of their base
class destructors. If the base class already has a virtual
destructor and the derived class needs default destructor semantics
then the derived class can omit defining the destructor in favor of
the compiler automatically defining it.

This has an additional benefit of reenabling move semantics. The
presence of a user-specified destructor automatically disables move
operations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Wredundant-decls</title>
<updated>2023-05-12T07:51:13+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-05-12T07:50:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=598895d04866c6e85f1d703a8c3d89e8d38a2311'/>
<id>598895d04866c6e85f1d703a8c3d89e8d38a2311</id>
<content type='text'>
Closes #2682
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2682
</pre>
</div>
</content>
</entry>
<entry>
<title>Split ITestInvoker into its own header</title>
<updated>2023-03-23T15:50:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-23T13:02:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1f881ab4641b866304b818a063164dae976dba5f'/>
<id>1f881ab4641b866304b818a063164dae976dba5f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce internal includes</title>
<updated>2023-03-20T18:24:52+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-14T22:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=62167d756e13d8f053b397c07f1192d8e308f2c5'/>
<id>62167d756e13d8f053b397c07f1192d8e308f2c5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix references to license file</title>
<updated>2022-10-28T09:30:15+00:00</updated>
<author>
<name>Lars Toenning</name>
</author>
<published>2022-10-28T09:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f1084fb30990fe40c8f5b70034970c7eb4e1da72'/>
<id>f1084fb30990fe40c8f5b70034970c7eb4e1da72</id>
<content type='text'>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</pre>
</div>
</content>
</entry>
<entry>
<title>struct -&gt; class normalization for various interface types</title>
<updated>2022-04-11T16:32:35+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-04-10T22:00:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8cdaebe9643f77b2e62cde01df0176d15385b12c'/>
<id>8cdaebe9643f77b2e62cde01df0176d15385b12c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
