mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-27 05:03:30 +01:00
parent
edad4d0af7
commit
4113a12c69
@ -239,6 +239,23 @@ there is no difference is wrong, QNX and VxWorks won't compile if you
|
||||
include the header as `<cfoo>` and call the function unqualified.
|
||||
|
||||
|
||||
#### User-Defined Literals (UDL) for Catch2' types
|
||||
|
||||
Due to messy standardese and ... not great ... implementation of
|
||||
`-Wreserved-identifier` in Clang, avoid declaring UDLs as
|
||||
```cpp
|
||||
Approx operator "" _a(long double);
|
||||
```
|
||||
and instead declare them as
|
||||
```cpp
|
||||
Approx operator ""_a(long double);
|
||||
```
|
||||
|
||||
Notice that the second version does not have a space between the `""` and
|
||||
the literal suffix.
|
||||
|
||||
|
||||
|
||||
### New source file template
|
||||
|
||||
If you are adding new source file, there is a template you should use.
|
||||
|
@ -114,8 +114,8 @@ namespace Catch {
|
||||
};
|
||||
|
||||
namespace literals {
|
||||
Approx operator "" _a(long double val);
|
||||
Approx operator "" _a(unsigned long long val);
|
||||
Approx operator ""_a(long double val);
|
||||
Approx operator ""_a(unsigned long long val);
|
||||
} // end namespace literals
|
||||
|
||||
template<>
|
||||
|
@ -98,12 +98,12 @@ namespace Catch {
|
||||
};
|
||||
|
||||
|
||||
constexpr auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef {
|
||||
constexpr auto operator ""_sr( char const* rawChars, std::size_t size ) noexcept -> StringRef {
|
||||
return StringRef( rawChars, size );
|
||||
}
|
||||
} // namespace Catch
|
||||
|
||||
constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef {
|
||||
constexpr auto operator ""_catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef {
|
||||
return Catch::StringRef( rawChars, size );
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user