mirror of
https://github.com/catchorg/Catch2.git
synced 2025-05-01 04:53:53 +00:00
Given that in the 2 or so years that matchers are thing nobody complained, it seems that people do not actually write this sort of code, and the possibility will be removed in v3. However, to avoid correctness bugs, we will have to support this weird code in v2.
60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
<a id="top"></a>
|
|
# Deprecations and incoming changes
|
|
|
|
This page documents current deprecations and upcoming planned changes
|
|
inside Catch2. The difference between these is that a deprecated feature
|
|
will be removed, while a planned change to a feature means that the
|
|
feature will behave differently, but will still be present. Obviously,
|
|
either of these is a breaking change, and thus will not happen until
|
|
at least the next major release.
|
|
|
|
|
|
### Composing lvalues of already composed matchers
|
|
|
|
Because a significant bug in this use case has persisted for 2+ years
|
|
without a bug report, and to simplify the implementation, code that
|
|
composes lvalues of composed matchers will not compile. That is,
|
|
this code will no longer work:
|
|
|
|
```cpp
|
|
auto m1 = Contains("string");
|
|
auto m2 = Contains("random");
|
|
auto composed1 = m1 || m2;
|
|
auto m3 = Contains("different");
|
|
auto composed2 = composed1 || m3;
|
|
REQUIRE_THAT(foo(), !composed1);
|
|
REQUIRE_THAT(foo(), composed2);
|
|
```
|
|
|
|
Instead you will have to write this:
|
|
|
|
```cpp
|
|
auto m1 = Contains("string");
|
|
auto m2 = Contains("random");
|
|
auto m3 = Contains("different");
|
|
REQUIRE_THAT(foo(), !(m1 || m2));
|
|
REQUIRE_THAT(foo(), m1 || m2 || m3);
|
|
```
|
|
|
|
|
|
|
|
## Planned changes
|
|
|
|
### `CHECKED_IF` and `CHECKED_ELSE`
|
|
|
|
To make the `CHECKED_IF` and `CHECKED_ELSE` macros more useful, they will
|
|
be marked as "OK to fail" (`Catch::ResultDisposition::SuppressFail` flag
|
|
will be added), which means that their failure will not fail the test,
|
|
making the `else` actually useful.
|
|
|
|
|
|
### Console Colour API
|
|
|
|
The API for Catch2's console colour will be changed to take an extra
|
|
argument, the stream to which the colour code should be applied.
|
|
|
|
|
|
---
|
|
|
|
[Home](Readme.md#top)
|