mirror of
https://github.com/catchorg/Catch2.git
synced 2025-10-29 06:01:53 +01:00
GCC 13 (as usual for new compiler releases) shuffles around some
internal includes and so <cstdint> is no longer transitively included.
Explicitly include <cstdint> for uint64_t.
```
FAILED: src/CMakeFiles/Catch2.dir/catch2/internal/catch_clara.cpp.o
/usr/lib/ccache/bin/g++-13 -I/var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1/src/catch2/.. -I/var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1_build/generated-includes -O2 -pipe
-march=native -fdiagnostics-color=always -frecord-gcc-switches -Wreturn-type -D_GLIBCXX_ASSERTIONS -ggdb3 -fdiagnostics-color=always
-ffile-prefix-map=/var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1=. -Wall -Wc++20-compat -Wcast-align -Wcatch-value -Wdeprecated -Wexceptions -Wextra -Wextra-semi -Wfloat-equal -Winit-self
-Wmisleading-indentation -Wmismatched-new-delete -Wmismatched-tags -Wmissing-braces -Wmissing-declarations -Wmissing-noreturn -Wnull-dereference -Wold-style-cast -Woverloaded-virtual -Wparentheses
-Wpedantic -Wreorder -Wshadow -Wstrict-aliasing -Wsuggest-override -Wundef -Wuninitialized -Wunreachable-code -Wunused -Wunused-function -Wunused-parameter -Wvla -MD -MT
src/CMakeFiles/Catch2.dir/catch2/internal/catch_clara.cpp.o -MF src/CMakeFiles/Catch2.dir/catch2/internal/catch_clara.cpp.o.d -o src/CMakeFiles/Catch2.dir/catch2/internal/catch_clara.cpp.o -c
/var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1/src/catch2/internal/catch_clara.cpp
In file included from /var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1/src/catch2/internal/catch_clara.cpp:12:
/var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1/src/catch2/../catch2/internal/catch_string_manip.hpp:47:14: error: 'uint64_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
47 | std::uint64_t m_count;
| ^~~~~~~~
| wint_t
/var/tmp/portage/dev-cpp/catch-3.0.1/work/Catch2-3.0.1/src/catch2/../catch2/internal/catch_string_manip.hpp:51:42: error: expected ')' before 'count'
51 | constexpr pluralise(std::uint64_t count, StringRef label):
| ~ ^~~~~~
| )
```
62 lines
2.0 KiB
C++
62 lines
2.0 KiB
C++
|
|
// Copyright Catch2 Authors
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE.txt or copy at
|
|
// https://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
#ifndef CATCH_STRING_MANIP_HPP_INCLUDED
|
|
#define CATCH_STRING_MANIP_HPP_INCLUDED
|
|
|
|
#include <catch2/internal/catch_stringref.hpp>
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <iosfwd>
|
|
#include <vector>
|
|
|
|
namespace Catch {
|
|
|
|
bool startsWith( std::string const& s, std::string const& prefix );
|
|
bool startsWith( StringRef s, char prefix );
|
|
bool endsWith( std::string const& s, std::string const& suffix );
|
|
bool endsWith( std::string const& s, char suffix );
|
|
bool contains( std::string const& s, std::string const& infix );
|
|
void toLowerInPlace( std::string& s );
|
|
std::string toLower( std::string const& s );
|
|
char toLower( char c );
|
|
//! Returns a new string without whitespace at the start/end
|
|
std::string trim( std::string const& str );
|
|
//! Returns a substring of the original ref without whitespace. Beware lifetimes!
|
|
StringRef trim(StringRef ref);
|
|
|
|
// !!! Be aware, returns refs into original string - make sure original string outlives them
|
|
std::vector<StringRef> splitStringRef( StringRef str, char delimiter );
|
|
bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
|
|
|
|
/**
|
|
* Helper for streaming a "count [maybe-plural-of-label]" human-friendly string
|
|
*
|
|
* Usage example:
|
|
* ```cpp
|
|
* std::cout << "Found " << pluralise(count, "error") << '\n';
|
|
* ```
|
|
*
|
|
* **Important:** The provided string must outlive the instance
|
|
*/
|
|
class pluralise {
|
|
std::uint64_t m_count;
|
|
StringRef m_label;
|
|
|
|
public:
|
|
constexpr pluralise(std::uint64_t count, StringRef label):
|
|
m_count(count),
|
|
m_label(label)
|
|
{}
|
|
|
|
friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
|
|
};
|
|
}
|
|
|
|
#endif // CATCH_STRING_MANIP_HPP_INCLUDED
|