<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src, branch v3.15.0</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>v3.15.0</title>
<updated>2026-05-12T11:16:46+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-12T11:16:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6ee0826dcae55ed1e06b2c5701981221e979e1e6'/>
<id>6ee0826dcae55ed1e06b2c5701981221e979e1e6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Constexpr matching support in generic Contains matchers</title>
<updated>2026-05-12T09:05:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-12T08:04:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d838f88b9c9a05d2879d29a5a54f864f823a1d64'/>
<id>d838f88b9c9a05d2879d29a5a54f864f823a1d64</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Constexpr matching support in the quantifier matchers</title>
<updated>2026-05-12T09:05:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-12T07:25:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c267b6eb4de6d9ccdde238334c1248c7b60b8c0b'/>
<id>c267b6eb4de6d9ccdde238334c1248c7b60b8c0b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Constexpr matching support in IsEmpty and SizeIs matchers</title>
<updated>2026-05-12T09:05:29+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-12T06:57:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3cdae5faf08b7a3861be5e7bf6f1968e9229f460'/>
<id>3cdae5faf08b7a3861be5e7bf6f1968e9229f460</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support for constexpr matchers in C++20 (P0784)</title>
<updated>2026-05-12T09:05:02+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-10T21:05:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=651247c7f40eda6846fec736d2f9edac8949dacb'/>
<id>651247c7f40eda6846fec736d2f9edac8949dacb</id>
<content type='text'>
To make this all work, I had to remove the stringification cache
from matchers. In theory, this can cause performance penalty in
cases where single matcher instance is stringified multiple times,
but in practice this does not happen much, and the difference is
surprisingly small anyway, because the performance of stringification
is already horrible and full of allocating strings just to throw
them away.

The matcher combinators need P2738 from C++26 to be `constexpr`.

Closes #3091
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To make this all work, I had to remove the stringification cache
from matchers. In theory, this can cause performance penalty in
cases where single matcher instance is stringified multiple times,
but in practice this does not happen much, and the difference is
surprisingly small anyway, because the performance of stringification
is already horrible and full of allocating strings just to throw
them away.

The matcher combinators need P2738 from C++26 to be `constexpr`.

Closes #3091
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't check if __cplusplus is defined</title>
<updated>2026-05-10T18:48:58+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-10T18:48:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=15b9393f0f32327e28833c5032b2c4e02c31d82c'/>
<id>15b9393f0f32327e28833c5032b2c4e02c31d82c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Workaround P3168 causing ambiguous overload issues with StringMaker</title>
<updated>2026-05-09T20:24:12+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-08T18:53:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a18badd10fce6c3e087eef82699f371cf6f99fa7'/>
<id>a18badd10fce6c3e087eef82699f371cf6f99fa7</id>
<content type='text'>
P3168 turned `std::optional` into a range type, so the partial specialization
of `StringMaker` for `std::optional&lt;T&gt;` conflicted with the partial
specialization for range types. Ideally we will fix this in the future
to support user-provided partial specializations for range-like types,
but for now we just disable the partial specialization for `std::optional&lt;T&gt;`
if P3168 is implemented.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
P3168 turned `std::optional` into a range type, so the partial specialization
of `StringMaker` for `std::optional&lt;T&gt;` conflicted with the partial
specialization for range types. Ideally we will fix this in the future
to support user-provided partial specializations for range-like types,
but for now we just disable the partial specialization for `std::optional&lt;T&gt;`
if P3168 is implemented.
</pre>
</div>
</content>
</entry>
<entry>
<title>IConfig derives from NonCopyable privately</title>
<updated>2026-05-07T08:12:28+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-07T08:11:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4df8fee92d8ed8013a09fb0a1e3796a404a9c44b'/>
<id>4df8fee92d8ed8013a09fb0a1e3796a404a9c44b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Wconversion warning in catch_reporter_helpers.cpp</title>
<updated>2026-05-06T07:58:01+00:00</updated>
<author>
<name>Ole Schmidt</name>
</author>
<published>2026-05-05T06:48:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=300c5d3eed3f36a25e6d81b896d823cc9a41a6ea'/>
<id>300c5d3eed3f36a25e6d81b896d823cc9a41a6ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanups from static analysis</title>
<updated>2026-04-24T09:21:04+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-24T09:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=11a96e186af8b2779d93e550217e9c95d3f89371'/>
<id>11a96e186af8b2779d93e550217e9c95d3f89371</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
