From 543f901b60bc4fc9b18997258fa70adc8ba8e5c4 Mon Sep 17 00:00:00 2001 From: Deniz Evrenci Date: Wed, 16 Oct 2019 18:32:06 +0900 Subject: [PATCH 1/3] [C++] Add nodiscard attributes. --- .../uk/co/real_logic/sbe/generation/cpp/CppGenerator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index 04f0ab9301..a6e0abe85d 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -668,7 +668,7 @@ private void generateVarDataDescriptors( sizeOfLengthField); new Formatter(sb).format("\n" + - indent + " %4$s %1$sLength() const\n" + + indent + " SBE_NODISCARD %4$s %1$sLength() const\n" + indent + " {\n" + "%2$s" + indent + " %4$s length;\n" + @@ -1524,7 +1524,7 @@ private void generateArrayProperty( if (encodingToken.encoding().primitiveType() == PrimitiveType.CHAR) { new Formatter(sb).format("\n" + - indent + " std::string get%1$sAsString() const\n" + + indent + " SBE_NODISCARD std::string get%1$sAsString() const\n" + indent + " {\n" + indent + " const char *buffer = m_buffer + m_offset + %2$d;\n" + indent + " size_t length = 0;\n\n" + @@ -1542,7 +1542,7 @@ private void generateArrayProperty( new Formatter(sb).format("\n" + indent + " #if __cplusplus >= 201703L\n" + - indent + " std::string_view get%1$sAsStringView() const SBE_NOEXCEPT\n" + + indent + " SBE_NODISCARD std::string_view get%1$sAsStringView() const SBE_NOEXCEPT\n" + indent + " {\n" + indent + " const char *buffer = m_buffer + m_offset + %2$d;\n" + indent + " size_t length = 0;\n\n" + From 2dec9fbe4022afd54fb5ab5ab7cff79d02b4c141 Mon Sep 17 00:00:00 2001 From: Deniz Evrenci Date: Mon, 28 Oct 2019 19:07:28 +0900 Subject: [PATCH 2/3] [C++] Use range-based for loop. --- .../co/real_logic/sbe/generation/cpp/CppGenerator.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index a6e0abe85d..257aa20593 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -1609,9 +1609,9 @@ private void generateJsonEscapedStringGetter( "%2$s" + indent + " std::ostringstream oss;\n" + indent + " std::string s = get%1$sAsString();\n\n" + - indent + " for (auto c = s.cbegin(); c != s.cend(); c++)\n" + + indent + " for (const auto c : s)\n" + indent + " {\n" + - indent + " switch (*c)\n" + + indent + " switch (c)\n" + indent + " {\n" + indent + " case '\"': oss << \"\\\\\\\"\"; break;\n" + indent + " case '\\\\': oss << \"\\\\\\\\\"; break;\n" + @@ -1621,14 +1621,14 @@ private void generateJsonEscapedStringGetter( indent + " case '\\r': oss << \"\\\\r\"; break;\n" + indent + " case '\\t': oss << \"\\\\t\"; break;\n\n" + indent + " default:\n" + - indent + " if ('\\x00' <= *c && *c <= '\\x1f')\n" + + indent + " if ('\\x00' <= c && c <= '\\x1f')\n" + indent + " {\n" + indent + " oss << \"\\\\u\"" + " << std::hex << std::setw(4)\n" + - indent + " << std::setfill('0') << (int)(*c);\n" + + indent + " << std::setfill('0') << (int)(c);\n" + indent + " }\n" + indent + " else\n" + indent + " {\n" + - indent + " oss << *c;\n" + + indent + " oss << c;\n" + indent + " }\n" + indent + " }\n" + indent + " }\n\n" + From 1584e93e044ac52018ab958b0f01e5fc728bb92b Mon Sep 17 00:00:00 2001 From: Deniz Evrenci Date: Fri, 18 Oct 2019 02:14:28 +0900 Subject: [PATCH 3/3] [C++] Stop clang-tidy from falsely analyzing sbeCheckPosition should be static. --- .../java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index 257aa20593..6541d41163 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -296,6 +296,7 @@ private static void generateGroupClassHeader( indent + " return *m_positionPtr;\n" + indent + " }\n\n" + + indent + " // NOLINTNEXTLINE(readability-convert-member-functions-to-static)\n" + indent + " std::uint64_t sbeCheckPosition(const std::uint64_t position)\n" + indent + " {\n" + indent + " if (SBE_BOUNDS_CHECK_EXPECT((position > m_bufferLength), false))\n" + @@ -1988,6 +1989,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final " return m_position;\n" + " }\n\n" + + " // NOLINTNEXTLINE(readability-convert-member-functions-to-static)\n" + " std::uint64_t sbeCheckPosition(const std::uint64_t position)\n" + " {\n" + " if (SBE_BOUNDS_CHECK_EXPECT((position > m_bufferLength), false))\n" +