mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 07:16:10 +01:00
Mention CATCH_MOVE and CATCH_FORWARD in contributing docs
This commit is contained in:
parent
d2ee7100d2
commit
88c27ffaf2
@ -210,7 +210,7 @@ are problematic and are not always caught by our CI infrastructure.
|
|||||||
#### Naked exceptions and exceptions-related function
|
#### Naked exceptions and exceptions-related function
|
||||||
|
|
||||||
If you are throwing an exception, it should be done via `CATCH_ERROR`
|
If you are throwing an exception, it should be done via `CATCH_ERROR`
|
||||||
or `CATCH_RUNTIME_ERROR` in `catch_enforce.h`. These macros will handle
|
or `CATCH_RUNTIME_ERROR` in `internal/catch_enforce.hpp`. These macros will handle
|
||||||
the differences between compilation with or without exceptions for you.
|
the differences between compilation with or without exceptions for you.
|
||||||
However, some platforms (IAR) also have problems with exceptions-related
|
However, some platforms (IAR) also have problems with exceptions-related
|
||||||
functions, such as `std::current_exceptions`. We do not have IAR in our
|
functions, such as `std::current_exceptions`. We do not have IAR in our
|
||||||
@ -219,6 +219,18 @@ However, if you do, they should be kept behind a
|
|||||||
`CATCH_CONFIG_DISABLE_EXCEPTIONS` macro.
|
`CATCH_CONFIG_DISABLE_EXCEPTIONS` macro.
|
||||||
|
|
||||||
|
|
||||||
|
#### Avoid `std::move` and `std::forward`
|
||||||
|
|
||||||
|
`std::move` and `std::forward` provide nice semantic name for a specific
|
||||||
|
`static_cast`. However, being function templates they have surprisingly
|
||||||
|
high cost during compilation, and can also have a negative performance
|
||||||
|
impact for low-optimization builds.
|
||||||
|
|
||||||
|
You should be using `CATCH_MOVE` and `CATCH_FORWARD` macros from
|
||||||
|
`internal/catch_move_and_forward.hpp` instead. They expand into the proper
|
||||||
|
`static_cast`, and avoid the overhead of `std::move` and `std::forward`.
|
||||||
|
|
||||||
|
|
||||||
#### Unqualified usage of functions from C's stdlib
|
#### Unqualified usage of functions from C's stdlib
|
||||||
|
|
||||||
If you are using a function from C's stdlib, please include the header
|
If you are using a function from C's stdlib, please include the header
|
||||||
|
Loading…
Reference in New Issue
Block a user