clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.
Change-Id: I6bbb587615b9d6f158900201ca04a647cb3a8f96
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/.clang-format b/.clang-format
index 9109e65..d92a3f1 100644
--- a/.clang-format
+++ b/.clang-format
@@ -5,22 +5,24 @@
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
-AlignEscapedNewlinesLeft: false
-AlignOperands: true
-AlignTrailingComments: true
+AlignEscapedNewlines: Right
+AlignOperands: Align
+AlignTrailingComments:
+ Kind: Always
+ OverEmptyLines: 1
AllowAllParametersOfDeclarationOnNextLine: true
-AllowShortBlocksOnASingleLine: false
+AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: None
+AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
-AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
-AlwaysBreakTemplateDeclarations: true
+AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
+ AfterCaseLabel: true
AfterClass: true
AfterControlStatement: true
AfterEnum: true
@@ -29,29 +31,60 @@
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
+ AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
+ SplitEmptyFunction: false
+ SplitEmptyRecord: false
+ SplitEmptyNamespace: false
+BreakAfterAttributes: Never
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: AfterColon
+BreakInheritanceList: AfterColon
+BreakStringLiterals: false
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
+DeriveLineEnding: false
DerivePointerAlignment: false
PointerAlignment: Left
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
+IncludeBlocks: Regroup
+IncludeCategories:
+ - Regex: '^[<"](gtest|gmock)'
+ Priority: 7
+ - Regex: '^"config.h"'
+ Priority: -1
+ - Regex: '^".*\.h"'
+ Priority: 1
+ - Regex: '^".*\.hpp"'
+ Priority: 2
+ - Regex: '^<.*\.h>'
+ Priority: 3
+ - Regex: '^<.*\.hpp>'
+ Priority: 4
+ - Regex: '^<.*'
+ Priority: 5
+ - Regex: '.*'
+ Priority: 6
IndentCaseLabels: true
+IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: true
-KeepEmptyLinesAtTheStartOfBlocks: true
+InsertNewlineAtEOF: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+LambdaBodyIndentation: OuterScope
+LineEnding: LF
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
@@ -59,18 +92,29 @@
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
+PenaltyBreakAssignment: 25
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
+PenaltyIndentedWhitespace: 0
+QualifierAlignment: Left
+ReferenceAlignment: Left
ReflowComments: true
+RequiresClausePosition: OwnLine
+RequiresExpressionIndentation: Keyword
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
+SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
@@ -78,7 +122,7 @@
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
-Standard: Cpp11
+Standard: Latest
TabWidth: 4
UseTab: Never
...
diff --git a/include-dl/stdplus/dl.hpp b/include-dl/stdplus/dl.hpp
index 0526391..24044c1 100644
--- a/include-dl/stdplus/dl.hpp
+++ b/include-dl/stdplus/dl.hpp
@@ -28,13 +28,11 @@
public:
inline DlOpenFlags(DlOpenType type) :
BitFlags<int, DlOpenFlag>(static_cast<int>(type))
- {
- }
+ {}
inline DlOpenFlags(BitFlags<int, DlOpenFlag> flags) :
BitFlags<int, DlOpenFlag>(flags)
- {
- }
+ {}
};
class Dl
diff --git a/include-fd/stdplus/fd/atomic.hpp b/include-fd/stdplus/fd/atomic.hpp
index 904e706..389c5ac 100644
--- a/include-fd/stdplus/fd/atomic.hpp
+++ b/include-fd/stdplus/fd/atomic.hpp
@@ -1,6 +1,7 @@
#pragma once
-#include <filesystem>
#include <stdplus/fd/managed.hpp>
+
+#include <filesystem>
#include <string>
#include <string_view>
diff --git a/include-fd/stdplus/fd/create.hpp b/include-fd/stdplus/fd/create.hpp
index 83aa2ba..e993739 100644
--- a/include-fd/stdplus/fd/create.hpp
+++ b/include-fd/stdplus/fd/create.hpp
@@ -1,8 +1,10 @@
#pragma once
#include <fcntl.h>
#include <netinet/ip.h>
+
#include <stdplus/fd/dupable.hpp>
#include <stdplus/flags.hpp>
+
#include <string>
namespace stdplus
@@ -43,13 +45,11 @@
public:
inline OpenFlags(OpenAccess access) :
BitFlags<int, OpenFlag>(static_cast<int>(access))
- {
- }
+ {}
inline OpenFlags(BitFlags<int, OpenFlag> flags) :
BitFlags<int, OpenFlag>(flags)
- {
- }
+ {}
};
DupableFd open(const char* pathname, OpenFlags flags, mode_t mode = 0);
diff --git a/include-fd/stdplus/fd/fmt.hpp b/include-fd/stdplus/fd/fmt.hpp
index de77b68..faa8dfc 100644
--- a/include-fd/stdplus/fd/fmt.hpp
+++ b/include-fd/stdplus/fd/fmt.hpp
@@ -1,7 +1,9 @@
#pragma once
#include <fmt/format.h>
-#include <functional>
+
#include <stdplus/fd/intf.hpp>
+
+#include <functional>
#include <type_traits>
#include <utility>
diff --git a/include-fd/stdplus/fd/gmock.hpp b/include-fd/stdplus/fd/gmock.hpp
index ca3b2af..7b70fd8 100644
--- a/include-fd/stdplus/fd/gmock.hpp
+++ b/include-fd/stdplus/fd/gmock.hpp
@@ -1,7 +1,8 @@
#pragma once
-#include <gmock/gmock.h>
#include <stdplus/fd/intf.hpp>
+#include <gmock/gmock.h>
+
namespace stdplus
{
namespace fd
diff --git a/include-fd/stdplus/fd/intf.hpp b/include-fd/stdplus/fd/intf.hpp
index 4d9553d..479fcc0 100644
--- a/include-fd/stdplus/fd/intf.hpp
+++ b/include-fd/stdplus/fd/intf.hpp
@@ -1,11 +1,13 @@
#pragma once
-#include <cstddef>
#include <fcntl.h>
-#include <optional>
-#include <span>
-#include <stdplus/flags.hpp>
#include <sys/mman.h>
#include <sys/socket.h>
+
+#include <stdplus/flags.hpp>
+
+#include <cstddef>
+#include <optional>
+#include <span>
#include <tuple>
namespace stdplus
@@ -104,13 +106,11 @@
public:
inline MMapFlags(MMapAccess access) :
BitFlags<int, MMapFlag>(static_cast<int>(access))
- {
- }
+ {}
inline MMapFlags(BitFlags<int, MMapFlag> flags) :
BitFlags<int, MMapFlag>(flags)
- {
- }
+ {}
};
class MMap;
diff --git a/include-fd/stdplus/fd/line.hpp b/include-fd/stdplus/fd/line.hpp
index e8f4b99..994777a 100644
--- a/include-fd/stdplus/fd/line.hpp
+++ b/include-fd/stdplus/fd/line.hpp
@@ -1,8 +1,9 @@
#pragma once
+#include <stdplus/fd/intf.hpp>
+
#include <array>
#include <functional>
#include <span>
-#include <stdplus/fd/intf.hpp>
#include <string>
namespace stdplus
diff --git a/include-fd/stdplus/fd/mmap.hpp b/include-fd/stdplus/fd/mmap.hpp
index 06b7944..2250ac0 100644
--- a/include-fd/stdplus/fd/mmap.hpp
+++ b/include-fd/stdplus/fd/mmap.hpp
@@ -1,9 +1,10 @@
#pragma once
+#include <stdplus/fd/intf.hpp>
+#include <stdplus/handle/managed.hpp>
+
#include <cstddef>
#include <functional>
#include <span>
-#include <stdplus/fd/intf.hpp>
-#include <stdplus/handle/managed.hpp>
namespace stdplus
{
@@ -19,8 +20,7 @@
fd,
std::span<std::byte>{static_cast<std::byte*>(nullptr), window_size},
prot, flags, offset)
- {
- }
+ {}
MMap(Fd& fd, std::span<std::byte> window, ProtFlags prot, MMapFlags flags,
off_t offset);
diff --git a/include-fd/stdplus/fd/ops.hpp b/include-fd/stdplus/fd/ops.hpp
index c51b2ef..98bdaee 100644
--- a/include-fd/stdplus/fd/ops.hpp
+++ b/include-fd/stdplus/fd/ops.hpp
@@ -1,9 +1,10 @@
#pragma once
-#include <span>
-#include <stdexcept>
#include <stdplus/fd/dupable.hpp>
#include <stdplus/fd/intf.hpp>
#include <stdplus/raw.hpp>
+
+#include <span>
+#include <stdexcept>
#include <utility>
namespace stdplus
diff --git a/include/stdplus/cancel.hpp b/include/stdplus/cancel.hpp
index b8bc82d..3017e1b 100644
--- a/include/stdplus/cancel.hpp
+++ b/include/stdplus/cancel.hpp
@@ -30,24 +30,19 @@
struct Cancel : detail::CancelHandle
{
- Cancel() : detail::CancelHandle(std::nullopt)
- {
- }
+ Cancel() : detail::CancelHandle(std::nullopt) {}
template <typename T>
explicit Cancel(T&& t) : detail::CancelHandle(t)
- {
- }
+ {}
};
namespace detail
{
struct fAny
-{
-};
+{};
struct fPtr : fAny
-{
-};
+{};
template <typename>
struct validator
@@ -83,14 +78,12 @@
template <typename Fi, typename... Vs>
explicit AlwaysCallOnce(Fi&& fi, Vs&&... default_args) :
f(std::forward<Fi>(fi)), default_args(std::forward<Vs>(default_args)...)
- {
- }
+ {}
AlwaysCallOnce(const AlwaysCallOnce&) = delete;
AlwaysCallOnce(AlwaysCallOnce&& other) noexcept :
f(std::move(other.f)), default_args(std::move(other.default_args)),
called(std::exchange(other.called, true))
- {
- }
+ {}
AlwaysCallOnce& operator=(const AlwaysCallOnce&) = delete;
AlwaysCallOnce& operator=(AlwaysCallOnce&& other) noexcept
{
diff --git a/include/stdplus/exception.hpp b/include/stdplus/exception.hpp
index 5390320..059f17f 100644
--- a/include/stdplus/exception.hpp
+++ b/include/stdplus/exception.hpp
@@ -1,5 +1,6 @@
#pragma once
#include <fmt/format.h>
+
#include <source_location>
#include <system_error>
#include <utility>
@@ -40,25 +41,25 @@
{
return
[f = std::move(f), file, line, func](auto&&... args) mutable noexcept {
- try
- {
- return f(std::forward<decltype(args)>(args)...);
- }
- catch (const std::exception& e)
- {
- fmt::print(stderr, "Ignoring({}:{} {}): {}\n", file, line, func,
- e.what());
- }
- catch (...)
- {
- fmt::print(stderr, "Ignoring({}:{} {}): Invalid Error\n", file,
- line, func);
- }
- using Ret = std::invoke_result_t<decltype(f), decltype(args)...>;
- if constexpr (!std::is_same_v<void, Ret>)
- {
- return Ret();
- }
+ try
+ {
+ return f(std::forward<decltype(args)>(args)...);
+ }
+ catch (const std::exception& e)
+ {
+ fmt::print(stderr, "Ignoring({}:{} {}): {}\n", file, line, func,
+ e.what());
+ }
+ catch (...)
+ {
+ fmt::print(stderr, "Ignoring({}:{} {}): Invalid Error\n", file,
+ line, func);
+ }
+ using Ret = std::invoke_result_t<decltype(f), decltype(args)...>;
+ if constexpr (!std::is_same_v<void, Ret>)
+ {
+ return Ret();
+ }
};
}
@@ -79,8 +80,7 @@
return f(std::forward<decltype(args)>(args)...);
}
catch (...)
- {
- }
+ {}
using Ret = std::invoke_result_t<decltype(f), decltype(args)...>;
if constexpr (!std::is_same_v<void, Ret>)
{
diff --git a/include/stdplus/flags.hpp b/include/stdplus/flags.hpp
index 047c776..a5678f3 100644
--- a/include/stdplus/flags.hpp
+++ b/include/stdplus/flags.hpp
@@ -8,9 +8,7 @@
class BitFlags
{
public:
- inline explicit BitFlags(Int val = 0) noexcept : val(val)
- {
- }
+ inline explicit BitFlags(Int val = 0) noexcept : val(val) {}
inline BitFlags& set(Flag flag) & noexcept
{
diff --git a/include/stdplus/handle/copyable.hpp b/include/stdplus/handle/copyable.hpp
index 86fc8b7..c40b432 100644
--- a/include/stdplus/handle/copyable.hpp
+++ b/include/stdplus/handle/copyable.hpp
@@ -1,6 +1,7 @@
#pragma once
-#include <optional>
#include <stdplus/handle/managed.hpp>
+
+#include <optional>
#include <type_traits>
#include <utility>
@@ -57,14 +58,12 @@
T>&&>(),
std::declval<Vs>()...))) :
MHandleF(std::move(maybeV), std::forward<Vs>(vs)...)
- {
- }
+ {}
template <typename... Vs>
constexpr explicit HandleF(T&& maybeV, Vs&&... vs) noexcept(
noexcept(MHandleF(std::declval<T&&>(), std::declval<Vs>()...))) :
MHandleF(std::move(maybeV), std::forward<Vs>(vs)...)
- {
- }
+ {}
constexpr HandleF(const HandleF& other) noexcept(noexcept(MHandleF(
std::nullopt,
@@ -81,8 +80,7 @@
constexpr HandleF(HandleF&& other) noexcept(
std::is_nothrow_move_constructible_v<MHandleF>) :
MHandleF(std::move(other))
- {
- }
+ {}
constexpr HandleF& operator=(const HandleF& other) noexcept(
noexcept(std::declval<HandleF>().reset()) &&
diff --git a/include/stdplus/handle/managed.hpp b/include/stdplus/handle/managed.hpp
index 08cac4f..1d4eceb 100644
--- a/include/stdplus/handle/managed.hpp
+++ b/include/stdplus/handle/managed.hpp
@@ -31,7 +31,6 @@
template <typename T, typename... As>
struct Managed
{
-
template <typename Drop>
class HandleF
{
@@ -50,16 +49,14 @@
std::tuple<As...>(std::declval<Vs>()...))) :
as(std::forward<Vs>(vs)...),
maybeT(std::move(maybeV))
- {
- }
+ {}
template <typename... Vs>
constexpr explicit HandleF(T&& maybeV, Vs&&... vs) noexcept(
std::is_nothrow_move_constructible_v<std::optional<T>>&& noexcept(
std::tuple<As...>(std::declval<Vs>()...))) :
as(std::forward<Vs>(vs)...),
maybeT(std::move(maybeV))
- {
- }
+ {}
HandleF(const HandleF& other) = delete;
HandleF& operator=(const HandleF& other) = delete;
diff --git a/include/stdplus/pinned.hpp b/include/stdplus/pinned.hpp
index c1490b2..e52a57f 100644
--- a/include/stdplus/pinned.hpp
+++ b/include/stdplus/pinned.hpp
@@ -49,8 +49,7 @@
constexpr Pinned(Args&&... args) noexcept(
noexcept(CT(std::declval<Args>()...))) :
CT(std::forward<Args>(args)...)
- {
- }
+ {}
template <typename Arg>
constexpr Pinned& operator=(Arg&& arg) noexcept(
@@ -76,24 +75,20 @@
!std::is_move_assignable_v<std::remove_cvref_t<U>>,
bool> = true>
constexpr PinnedRef(U& u) noexcept : wrapper(u)
- {
- }
+ {}
template <typename U>
constexpr PinnedRef(Pinned<U>& u) noexcept : wrapper(u)
- {
- }
+ {}
template <typename U,
std::enable_if_t<!std::is_same_v<U, void> && std::is_const_v<T>,
bool> = true>
constexpr PinnedRef(const Pinned<U>& u) noexcept : wrapper(u)
- {
- }
+ {}
template <typename U>
constexpr PinnedRef(PinnedRef<U> u) noexcept : wrapper(u)
- {
- }
+ {}
};
template <typename T>
diff --git a/include/stdplus/raw.hpp b/include/stdplus/raw.hpp
index a5206c0..dbec33e 100644
--- a/include/stdplus/raw.hpp
+++ b/include/stdplus/raw.hpp
@@ -1,6 +1,7 @@
#pragma once
-#include <algorithm>
#include <fmt/format.h>
+
+#include <algorithm>
#include <span>
#include <stdexcept>
#include <string_view>
@@ -94,11 +95,9 @@
/** @brief If you can guarantee the underlying data is properly aligned
* for raw struct access this specifier is used to override compile checks. */
struct Aligned
-{
-};
+{};
struct UnAligned
-{
-};
+{};
/** @brief References the data from a buffer if aligned
*
diff --git a/include/stdplus/str/cat.hpp b/include/stdplus/str/cat.hpp
index 3c39df0..fc97b17 100644
--- a/include/stdplus/str/cat.hpp
+++ b/include/stdplus/str/cat.hpp
@@ -23,8 +23,7 @@
template <typename... Args>
constexpr DedSV(Args&&... args) :
std::basic_string_view<CharT, Traits>(std::forward<Args>(args)...)
- {
- }
+ {}
};
template <typename CharT>
diff --git a/include/stdplus/util/cexec.hpp b/include/stdplus/util/cexec.hpp
index daf402c..a40903e 100644
--- a/include/stdplus/util/cexec.hpp
+++ b/include/stdplus/util/cexec.hpp
@@ -53,7 +53,7 @@
"Unimplemented check routine"); \
} \
return check_errno_ret; \
- }((expr))
+ }((expr))
/** @brief Wraps common c style error handling for exception throwing
* This requires the callee to provide error information in -r.
@@ -77,7 +77,7 @@
"Unimplemented check routine"); \
} \
return check_ret_ret; \
- }((expr))
+ }((expr))
namespace stdplus
{
@@ -156,7 +156,7 @@
* @throws std::system_error for an error case.
* @return A successful return value based on the function type
*/
-template <auto(*makeError)(int, const char*) = makeSystemError,
+template <auto (*makeError)(int, const char*) = makeSystemError,
typename... Args>
inline auto callCheckErrno(const char* msg, Args&&... args)
{
@@ -181,7 +181,7 @@
static_assert(std::is_same_v<Ret, int>, "Unimplemented check routine");
}
}
-template <auto(*makeError)(int, const char*) = makeSystemError,
+template <auto (*makeError)(int, const char*) = makeSystemError,
typename... Args>
inline auto callCheckErrno(const std::string& msg, Args&&... args)
{
@@ -198,7 +198,7 @@
* @throws std::system_error for an error case.
* @return A successful return value based on the function type
*/
-template <auto(*makeError)(int, const char*) = makeSystemError,
+template <auto (*makeError)(int, const char*) = makeSystemError,
typename... Args>
inline auto callCheckRet(const char* msg, Args&&... args)
{
@@ -216,7 +216,7 @@
static_assert(std::is_same_v<Ret, int>, "Unimplemented check routine");
}
}
-template <auto(*makeError)(int, const char*) = makeSystemError,
+template <auto (*makeError)(int, const char*) = makeSystemError,
typename... Args>
inline auto callCheckRet(const std::string& msg, Args&&... args)
{
diff --git a/include/stdplus/zstring.hpp b/include/stdplus/zstring.hpp
index 694eeaf..29288ae 100644
--- a/include/stdplus/zstring.hpp
+++ b/include/stdplus/zstring.hpp
@@ -1,6 +1,7 @@
#pragma once
-#include <cstddef>
#include <fmt/core.h>
+
+#include <cstddef>
#include <limits>
#include <string>
#include <type_traits>
@@ -50,14 +51,12 @@
template <typename T, typename CharT, typename Traits>
struct same_string : std::false_type
-{
-};
+{};
template <typename CharT, typename Traits, typename Allocator>
-struct same_string<std::basic_string<CharT, Traits, Allocator>, CharT, Traits>
- : std::true_type
-{
-};
+struct same_string<std::basic_string<CharT, Traits, Allocator>, CharT, Traits> :
+ std::true_type
+{};
} // namespace detail
@@ -97,8 +96,7 @@
}
template <typename T, std::enable_if_t<std::is_pointer_v<T>, bool> = true>
constexpr basic_zstring(T str) noexcept : data_(str)
- {
- }
+ {}
template <typename T,
std::enable_if_t<detail::same_string<std::remove_cvref_t<T>,
decay_t, Traits>::value,
@@ -254,8 +252,8 @@
template <typename CharT, typename Traits>
struct formatter<stdplus::basic_zstring<CharT, Traits>,
- std::remove_const_t<CharT>>
- : formatter<const CharT*, std::remove_const_t<CharT>>
+ std::remove_const_t<CharT>> :
+ formatter<const CharT*, std::remove_const_t<CharT>>
{
template <typename FormatContext>
inline auto format(stdplus::basic_zstring<CharT, Traits> str,
diff --git a/include/stdplus/zstring_view.hpp b/include/stdplus/zstring_view.hpp
index 3ae13b3..a346130 100644
--- a/include/stdplus/zstring_view.hpp
+++ b/include/stdplus/zstring_view.hpp
@@ -1,7 +1,9 @@
#pragma once
#include <fmt/core.h>
-#include <stdexcept>
+
#include <stdplus/zstring.hpp>
+
+#include <stdexcept>
#include <string>
#include <string_view>
#include <type_traits>
@@ -83,12 +85,10 @@
:
sv(str, detail::zstring_validate(str, 0, N))
#endif
- {
- }
+ {}
template <typename T, std::enable_if_t<std::is_pointer_v<T>, bool> = true>
constexpr basic_zstring_view(T str) noexcept : sv(str)
- {
- }
+ {}
template <typename T,
std::enable_if_t<detail::same_string<T, CharT, Traits>::value,
bool> = true>
@@ -101,16 +101,14 @@
sv(str.data(),
detail::zstring_validate(str.data(), str.size(), str.size() + 1))
#endif
- {
- }
+ {}
template <
typename T,
std::enable_if_t<std::is_same_v<value_type, std::remove_const_t<T>>,
bool> = true>
constexpr basic_zstring_view(basic_zstring<T, Traits> str) noexcept :
sv(str.data())
- {
- }
+ {}
constexpr operator string_view_base() const noexcept
{
@@ -295,11 +293,9 @@
string_view_base sv;
struct unsafe
- {
- };
+ {};
constexpr basic_zstring_view(unsafe, string_view_base sv) noexcept : sv(sv)
- {
- }
+ {}
friend auto detail::unsafe_zstring_view<CharT, Traits>(string_view_base sv);
};
@@ -331,10 +327,9 @@
namespace std \
{ \
template <> \
- struct hash<stdplus::basic_zstring_view<char_t>> \
- : hash<basic_string_view<char_t>> \
- { \
- }; \
+ struct hash<stdplus::basic_zstring_view<char_t>> : \
+ hash<basic_string_view<char_t>> \
+ {}; \
}
zstring_view_all(char, );
zstring_view_all(char8_t, u8);
@@ -347,8 +342,8 @@
{
template <typename CharT, typename Traits>
-struct formatter<stdplus::basic_zstring_view<CharT, Traits>, CharT>
- : formatter<basic_string_view<CharT>, CharT>
+struct formatter<stdplus::basic_zstring_view<CharT, Traits>, CharT> :
+ formatter<basic_string_view<CharT>, CharT>
{
template <typename FormatContext>
inline auto format(stdplus::basic_zstring_view<CharT, Traits> str,
diff --git a/src/dl.cpp b/src/dl.cpp
index 659389c..050f25c 100644
--- a/src/dl.cpp
+++ b/src/dl.cpp
@@ -8,8 +8,7 @@
Dl::Dl(const char* file, DlOpenFlags flags) :
handle(open(file, static_cast<int>(flags)))
-{
-}
+{}
struct link_map* Dl::linkMap()
{
diff --git a/src/exception.cpp b/src/exception.cpp
index c969295..cd79ebc 100644
--- a/src/exception.cpp
+++ b/src/exception.cpp
@@ -24,26 +24,22 @@
WouldBlock::WouldBlock(const char* what) :
std::system_error(std::make_error_code(std::errc::operation_would_block),
what)
-{
-}
+{}
WouldBlock::WouldBlock(const std::string& what) :
std::system_error(std::make_error_code(std::errc::operation_would_block),
what)
-{
-}
+{}
Eof::Eof(const char* what) :
std::system_error(std::make_error_code(std::errc::no_message_available),
what)
-{
-}
+{}
Eof::Eof(const std::string& what) :
std::system_error(std::make_error_code(std::errc::no_message_available),
what)
-{
-}
+{}
} // namespace exception
} // namespace stdplus
diff --git a/src/fd/atomic.cpp b/src/fd/atomic.cpp
index df200e6..ce9dff2 100644
--- a/src/fd/atomic.cpp
+++ b/src/fd/atomic.cpp
@@ -1,10 +1,12 @@
-#include <cstdlib>
-#include <filesystem>
#include <fmt/format.h>
+#include <sys/stat.h>
+
#include <stdplus/fd/atomic.hpp>
#include <stdplus/fd/managed.hpp>
#include <stdplus/util/cexec.hpp>
-#include <sys/stat.h>
+
+#include <cstdlib>
+#include <filesystem>
#include <system_error>
#include <utility>
@@ -16,8 +18,8 @@
static std::string makeTmpName(const std::filesystem::path& filename)
{
auto name = filename.filename();
- auto path =
- filename.parent_path() / fmt::format(".{}.XXXXXX", name.native());
+ auto path = filename.parent_path() /
+ fmt::format(".{}.XXXXXX", name.native());
return path.native();
}
@@ -38,8 +40,7 @@
mode(mode),
tmpname(!tmpl.empty() ? std::string(tmpl) : makeTmpName(filename)),
fd(mktemp(tmpname))
-{
-}
+{}
AtomicWriter::AtomicWriter(AtomicWriter&& other) :
filename(std::move(other.filename)), mode(other.mode),
diff --git a/src/fd/create.cpp b/src/fd/create.cpp
index 2240a98..bfef66f 100644
--- a/src/fd/create.cpp
+++ b/src/fd/create.cpp
@@ -1,8 +1,9 @@
#include <fcntl.h>
#include <fmt/format.h>
+#include <sys/socket.h>
+
#include <stdplus/fd/create.hpp>
#include <stdplus/util/cexec.hpp>
-#include <sys/socket.h>
namespace stdplus
{
diff --git a/src/fd/dupable.cpp b/src/fd/dupable.cpp
index ce2cff1..d096d04 100644
--- a/src/fd/dupable.cpp
+++ b/src/fd/dupable.cpp
@@ -1,7 +1,9 @@
#include <fcntl.h>
+
#include <stdplus/fd/dupable.hpp>
#include <stdplus/fd/ops.hpp>
#include <stdplus/util/cexec.hpp>
+
#include <utility>
namespace stdplus
@@ -18,13 +20,9 @@
} // namespace detail
-DupableFd::DupableFd() noexcept : handle(std::nullopt)
-{
-}
+DupableFd::DupableFd() noexcept : handle(std::nullopt) {}
-DupableFd::DupableFd(const int& fd) : handle(fd)
-{
-}
+DupableFd::DupableFd(const int& fd) : handle(fd) {}
DupableFd::DupableFd(int&& fd) : handle(std::move(fd))
{
diff --git a/src/fd/fmt.cpp b/src/fd/fmt.cpp
index 94d3bc1..1907ded 100644
--- a/src/fd/fmt.cpp
+++ b/src/fd/fmt.cpp
@@ -6,9 +6,7 @@
namespace fd
{
-FormatBuffer::FormatBuffer(Fd& fd, size_t max) : fd(fd), max(max)
-{
-}
+FormatBuffer::FormatBuffer(Fd& fd, size_t max) : fd(fd), max(max) {}
FormatBuffer::~FormatBuffer() noexcept(false)
{
diff --git a/src/fd/impl.cpp b/src/fd/impl.cpp
index 34b365f..1272fc8 100644
--- a/src/fd/impl.cpp
+++ b/src/fd/impl.cpp
@@ -1,13 +1,15 @@
#include <fcntl.h>
#include <fmt/format.h>
-#include <stdplus/exception.hpp>
-#include <stdplus/fd/impl.hpp>
-#include <stdplus/util/cexec.hpp>
-#include <string_view>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <unistd.h>
+#include <stdplus/exception.hpp>
+#include <stdplus/fd/impl.hpp>
+#include <stdplus/util/cexec.hpp>
+
+#include <string_view>
+
namespace stdplus
{
namespace fd
@@ -35,8 +37,8 @@
std::span<std::byte> FdImpl::recv(std::span<std::byte> buf, RecvFlags flags)
{
- ssize_t amt =
- ::recv(get(), buf.data(), buf.size(), static_cast<int>(flags));
+ ssize_t amt = ::recv(get(), buf.data(), buf.size(),
+ static_cast<int>(flags));
if (amt == -1)
{
if (errno == EAGAIN || errno == EWOULDBLOCK)
@@ -69,8 +71,8 @@
std::span<const std::byte> FdImpl::send(std::span<const std::byte> data,
SendFlags flags)
{
- ssize_t amt =
- ::send(get(), data.data(), data.size(), static_cast<int>(flags));
+ ssize_t amt = ::send(get(), data.data(), data.size(),
+ static_cast<int>(flags));
if (amt == -1)
{
if (errno == EAGAIN || errno == EWOULDBLOCK)
diff --git a/src/fd/line.cpp b/src/fd/line.cpp
index db12041..b3ce76a 100644
--- a/src/fd/line.cpp
+++ b/src/fd/line.cpp
@@ -1,16 +1,15 @@
-#include <cstring>
#include <stdplus/exception.hpp>
#include <stdplus/fd/line.hpp>
#include <stdplus/fd/ops.hpp>
+#include <cstring>
+
namespace stdplus
{
namespace fd
{
-LineReader::LineReader(Fd& fd) : fd(fd)
-{
-}
+LineReader::LineReader(Fd& fd) : fd(fd) {}
const std::string* LineReader::readLine()
{
diff --git a/src/fd/managed.cpp b/src/fd/managed.cpp
index 1b19284..cd4ec1c 100644
--- a/src/fd/managed.cpp
+++ b/src/fd/managed.cpp
@@ -1,9 +1,11 @@
#include <fmt/format.h>
+#include <unistd.h>
+
#include <stdplus/fd/dupable.hpp>
#include <stdplus/fd/managed.hpp>
#include <stdplus/fd/ops.hpp>
#include <stdplus/util/cexec.hpp>
-#include <unistd.h>
+
#include <utility>
namespace stdplus
@@ -20,9 +22,7 @@
} // namespace detail
-ManagedFd::ManagedFd() noexcept : handle(std::nullopt)
-{
-}
+ManagedFd::ManagedFd() noexcept : handle(std::nullopt) {}
ManagedFd::ManagedFd(int&& fd) : handle(std::move(fd))
{
@@ -31,12 +31,9 @@
ManagedFd::ManagedFd(DupableFd&& other) noexcept :
handle(static_cast<detail::ManagedFdHandle&&>(other.handle))
-{
-}
+{}
-ManagedFd::ManagedFd(const DupableFd& other) : ManagedFd(DupableFd(other))
-{
-}
+ManagedFd::ManagedFd(const DupableFd& other) : ManagedFd(DupableFd(other)) {}
ManagedFd& ManagedFd::operator=(DupableFd&& other) noexcept
{
diff --git a/src/fd/mmap.cpp b/src/fd/mmap.cpp
index 079815d..1f5c211 100644
--- a/src/fd/mmap.cpp
+++ b/src/fd/mmap.cpp
@@ -9,8 +9,7 @@
MMap::MMap(Fd& fd, std::span<std::byte> window, ProtFlags prot, MMapFlags flags,
off_t offset) :
mapping(fd.mmap(window, prot, flags, offset), fd)
-{
-}
+{}
std::span<std::byte> MMap::get() const
{
diff --git a/src/fd/ops.cpp b/src/fd/ops.cpp
index d47dbb3..e8f3636 100644
--- a/src/fd/ops.cpp
+++ b/src/fd/ops.cpp
@@ -1,6 +1,8 @@
#include <fmt/format.h>
+
#include <stdplus/exception.hpp>
#include <stdplus/fd/ops.hpp>
+
#include <utility>
namespace stdplus
@@ -54,8 +56,8 @@
std::span<Byte> ret;
do
{
- auto r =
- (fd.*fun)(data.subspan(ret.size()), std::forward<Args>(args)...);
+ auto r = (fd.*fun)(data.subspan(ret.size()),
+ std::forward<Args>(args)...);
if (ret.size() != 0 && r.size() == 0)
{
throw exception::WouldBlock(
diff --git a/src/gtest/tmp.cpp b/src/gtest/tmp.cpp
index 07dfb6d..4d06de5 100644
--- a/src/gtest/tmp.cpp
+++ b/src/gtest/tmp.cpp
@@ -1,8 +1,9 @@
#include <fmt/format.h>
-#include <filesystem>
#include <stdplus/gtest/tmp.hpp>
+#include <filesystem>
+
namespace stdplus
{
namespace gtest
diff --git a/src/io_uring.cpp b/src/io_uring.cpp
index 0dec400..0e6a7b4 100644
--- a/src/io_uring.cpp
+++ b/src/io_uring.cpp
@@ -1,5 +1,4 @@
#include <liburing.h>
-
#include <sys/eventfd.h>
#include <stdplus/fd/managed.hpp>
@@ -45,8 +44,7 @@
IoUring::FileHandle::FileHandle(unsigned slot, IoUring& ring) :
slot(slot, &ring)
-{
-}
+{}
void IoUring::FileHandle::drop(unsigned&& slot, IoUring*& ring)
{
diff --git a/src/signal.cpp b/src/signal.cpp
index 525f2c0..3acba26 100644
--- a/src/signal.cpp
+++ b/src/signal.cpp
@@ -1,6 +1,8 @@
#include <signal.h>
+
#include <stdplus/signal.hpp>
#include <stdplus/util/cexec.hpp>
+
#include <system_error>
namespace stdplus
diff --git a/test/cancel.cpp b/test/cancel.cpp
index 3efefb8..f1f9588 100644
--- a/test/cancel.cpp
+++ b/test/cancel.cpp
@@ -1,6 +1,7 @@
-#include <functional>
#include <stdplus/cancel.hpp>
+#include <functional>
+
#include <gtest/gtest.h>
namespace stdplus
diff --git a/test/dl.cpp b/test/dl.cpp
index cc16293..8ded85d 100644
--- a/test/dl.cpp
+++ b/test/dl.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
#include <stdplus/dl.hpp>
+#include <gtest/gtest.h>
+
namespace stdplus
{
diff --git a/test/exception.cpp b/test/exception.cpp
index 5d22071..a0d2e54 100644
--- a/test/exception.cpp
+++ b/test/exception.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
#include <stdplus/exception.hpp>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace exception
diff --git a/test/fd/atomic.cpp b/test/fd/atomic.cpp
index c67ce41..b49112c 100644
--- a/test/fd/atomic.cpp
+++ b/test/fd/atomic.cpp
@@ -1,8 +1,9 @@
-#include <filesystem>
-#include <memory>
#include <stdplus/fd/atomic.hpp>
#include <stdplus/fd/ops.hpp>
#include <stdplus/gtest/tmp.hpp>
+
+#include <filesystem>
+#include <memory>
#include <string_view>
namespace stdplus
@@ -18,9 +19,7 @@
std::string filename;
std::unique_ptr<AtomicWriter> file;
- AtomicWriterTest() : filename(fmt::format("{}/out", CaseTmpDir()))
- {
- }
+ AtomicWriterTest() : filename(fmt::format("{}/out", CaseTmpDir())) {}
~AtomicWriterTest() noexcept
{
@@ -47,8 +46,8 @@
TEST_F(AtomicWriterTest, BadCommit)
{
auto tmp = fmt::format("{}/tmp.XXXXXX", CaseTmpDir());
- ASSERT_NO_THROW(file =
- std::make_unique<AtomicWriter>("/dev/null", 0644, tmp));
+ ASSERT_NO_THROW(
+ file = std::make_unique<AtomicWriter>("/dev/null", 0644, tmp));
writeExact(*file, "hi\n"sv);
EXPECT_TRUE(std::filesystem::exists(file->getTmpname()));
EXPECT_THROW(file->commit(), std::filesystem::filesystem_error);
diff --git a/test/fd/dupable.cpp b/test/fd/dupable.cpp
index e203932..3431e54 100644
--- a/test/fd/dupable.cpp
+++ b/test/fd/dupable.cpp
@@ -1,4 +1,2 @@
#include <stdplus/fd/dupable.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/fmt.cpp b/test/fd/fmt.cpp
index f7ff9d8..770bc99 100644
--- a/test/fd/fmt.cpp
+++ b/test/fd/fmt.cpp
@@ -1,14 +1,15 @@
-#include <gtest/gtest.h>
-
#include <fmt/compile.h>
+#include <sys/mman.h>
+
#include <stdplus/fd/fmt.hpp>
#include <stdplus/fd/managed.hpp>
#include <stdplus/util/cexec.hpp>
-#include <sys/mman.h>
#include <string>
#include <string_view>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace fd
diff --git a/test/fd/impl.cpp b/test/fd/impl.cpp
index 6d0c00b..7806b45 100644
--- a/test/fd/impl.cpp
+++ b/test/fd/impl.cpp
@@ -1,4 +1,2 @@
#include <stdplus/fd/impl.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/intf.cpp b/test/fd/intf.cpp
index d4cc8c2..bc58756 100644
--- a/test/fd/intf.cpp
+++ b/test/fd/intf.cpp
@@ -1,4 +1,2 @@
#include <stdplus/fd/intf.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/line.cpp b/test/fd/line.cpp
index 8d9eb32..2913a25 100644
--- a/test/fd/line.cpp
+++ b/test/fd/line.cpp
@@ -1,4 +1,5 @@
-#include <gtest/gtest.h>
+#include <sys/mman.h>
+
#include <stdplus/exception.hpp>
#include <stdplus/fd/gmock.hpp>
#include <stdplus/fd/line.hpp>
@@ -6,8 +7,10 @@
#include <stdplus/fd/ops.hpp>
#include <stdplus/raw.hpp>
#include <stdplus/util/cexec.hpp>
+
#include <string_view>
-#include <sys/mman.h>
+
+#include <gtest/gtest.h>
namespace stdplus
{
@@ -70,7 +73,10 @@
inline auto readSv(std::string_view s)
{
return [s](std::span<std::byte> buf) {
- memcpy(buf.data(), s.data(), s.size());
+ if (s.size())
+ {
+ memcpy(buf.data(), s.data(), s.size());
+ }
return buf.subspan(0, s.size());
};
}
diff --git a/test/fd/managed.cpp b/test/fd/managed.cpp
index f365618..a232fdc 100644
--- a/test/fd/managed.cpp
+++ b/test/fd/managed.cpp
@@ -1,4 +1,2 @@
#include <stdplus/fd/managed.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/mmap.cpp b/test/fd/mmap.cpp
index 3f1ab33..bf73556 100644
--- a/test/fd/mmap.cpp
+++ b/test/fd/mmap.cpp
@@ -1,8 +1,10 @@
-#include <array>
-#include <gtest/gtest.h>
#include <stdplus/fd/create.hpp>
#include <stdplus/fd/mmap.hpp>
+#include <array>
+
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace fd
diff --git a/test/fd/mock.cpp b/test/fd/mock.cpp
index 0cc6dfd..a3ad784 100644
--- a/test/fd/mock.cpp
+++ b/test/fd/mock.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
#include <stdplus/fd/gmock.hpp>
+#include <gtest/gtest.h>
+
namespace stdplus
{
diff --git a/test/fd/ops.cpp b/test/fd/ops.cpp
index 2d52101..c0328fe 100644
--- a/test/fd/ops.cpp
+++ b/test/fd/ops.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
#include <stdplus/fd/ops.hpp>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace fd
diff --git a/test/gtest/tmp.cpp b/test/gtest/tmp.cpp
index f473175..c1b7c74 100644
--- a/test/gtest/tmp.cpp
+++ b/test/gtest/tmp.cpp
@@ -1,15 +1,16 @@
-#include <filesystem>
-#include <gtest/gtest.h>
#include <stdplus/gtest/tmp.hpp>
+#include <filesystem>
+
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace gtest
{
class TestWithTmpTest : public TestWithTmp
-{
-};
+{};
TEST_F(TestWithTmpTest, One)
{
@@ -28,8 +29,7 @@
}
class TestWithTmpTest2 : public TestWithTmp
-{
-};
+{};
TEST_F(TestWithTmpTest2, One)
{
diff --git a/test/handle/copyable.cpp b/test/handle/copyable.cpp
index cd17c54..161b808 100644
--- a/test/handle/copyable.cpp
+++ b/test/handle/copyable.cpp
@@ -1,10 +1,12 @@
-#include <gtest/gtest.h>
-#include <optional>
#include <stdplus/handle/copyable.hpp>
+
+#include <optional>
#include <string>
#include <utility>
#include <vector>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace
diff --git a/test/handle/managed.cpp b/test/handle/managed.cpp
index fb89195..74816e5 100644
--- a/test/handle/managed.cpp
+++ b/test/handle/managed.cpp
@@ -1,11 +1,13 @@
-#include <gtest/gtest.h>
-#include <optional>
#include <stdplus/handle/managed.hpp>
+
+#include <optional>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace
diff --git a/test/io_uring.cpp b/test/io_uring.cpp
index 8a9f2c0..7a646e2 100644
--- a/test/io_uring.cpp
+++ b/test/io_uring.cpp
@@ -1,14 +1,15 @@
+#include <fmt/format.h>
#include <poll.h>
+#include <sys/utsname.h>
+
+#include <stdplus/io_uring.hpp>
+#include <stdplus/util/cexec.hpp>
#include <array>
#include <charconv>
#include <chrono>
-#include <fmt/format.h>
#include <optional>
-#include <stdplus/io_uring.hpp>
-#include <stdplus/util/cexec.hpp>
#include <string_view>
-#include <sys/utsname.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
diff --git a/test/pinned.cpp b/test/pinned.cpp
index f33f41a..5e58dc4 100644
--- a/test/pinned.cpp
+++ b/test/pinned.cpp
@@ -1,7 +1,9 @@
-#include <gtest/gtest.h>
#include <stdplus/pinned.hpp>
+
#include <string>
+#include <gtest/gtest.h>
+
namespace stdplus
{
diff --git a/test/raw.cpp b/test/raw.cpp
index 0de4c33..fa3c77e 100644
--- a/test/raw.cpp
+++ b/test/raw.cpp
@@ -1,13 +1,16 @@
-#include <array>
#include <endian.h>
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
+
+#include <stdplus/raw.hpp>
+
+#include <array>
#include <span>
#include <stdexcept>
-#include <stdplus/raw.hpp>
#include <string_view>
#include <vector>
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace raw
diff --git a/test/signal.cpp b/test/signal.cpp
index d060861..3ca2695 100644
--- a/test/signal.cpp
+++ b/test/signal.cpp
@@ -1,8 +1,11 @@
-#include <cstring>
-#include <gtest/gtest.h>
#include <signal.h>
+
#include <stdplus/signal.hpp>
+#include <cstring>
+
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace signal
diff --git a/test/str/cat.cpp b/test/str/cat.cpp
index 1633f6e..758facc 100644
--- a/test/str/cat.cpp
+++ b/test/str/cat.cpp
@@ -1,8 +1,10 @@
-#include <gtest/gtest.h>
#include <stdplus/str/cat.hpp>
+
#include <string>
#include <string_view>
+#include <gtest/gtest.h>
+
namespace stdplus
{
diff --git a/test/util/cexec.cpp b/test/util/cexec.cpp
index f5b7a5e..3c2099e 100644
--- a/test/util/cexec.cpp
+++ b/test/util/cexec.cpp
@@ -1,8 +1,10 @@
-#include <gtest/gtest.h>
#include <stdplus/util/cexec.hpp>
+
#include <string_view>
#include <system_error>
+#include <gtest/gtest.h>
+
namespace stdplus
{
namespace util
diff --git a/test/zstring.cpp b/test/zstring.cpp
index 69b3c9f..53c3a14 100644
--- a/test/zstring.cpp
+++ b/test/zstring.cpp
@@ -1,10 +1,13 @@
#include <fmt/format.h>
-#include <gtest/gtest.h>
-#include <iostream>
+
#include <stdplus/zstring.hpp>
+
+#include <iostream>
#include <string>
#include <string_view>
+#include <gtest/gtest.h>
+
using std::literals::string_literals::operator""s;
using std::literals::string_view_literals::operator""sv;
diff --git a/test/zstring_view.cpp b/test/zstring_view.cpp
index 40ad4d4..8b29bc9 100644
--- a/test/zstring_view.cpp
+++ b/test/zstring_view.cpp
@@ -1,11 +1,14 @@
#include <fmt/format.h>
-#include <gtest/gtest.h>
+
+#include <stdplus/zstring_view.hpp>
+
#include <iostream>
#include <set>
-#include <stdplus/zstring_view.hpp>
#include <string>
#include <unordered_set>
+#include <gtest/gtest.h>
+
namespace stdplus
{