Skip to content

[C++] Add noexcept specifier #480

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 15, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -251,11 +251,11 @@ private static void generateGroupClassHeader(
numInGroupToken.encoding().applicableMaxValue().longValue()));

sb.append(String.format(
indent + " static SBE_CONSTEXPR std::uint64_t sbeHeaderSize()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t sbeHeaderSize() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %1$d;\n" +
indent + " }\n\n" +
indent + " static SBE_CONSTEXPR std::uint64_t sbeBlockLength()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t sbeBlockLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n" +
Expand All @@ -271,11 +271,11 @@ private static void generateGroupClassHeader(
indent + " }\n" +
indent + " *m_positionPtr = position;\n" +
indent + " }\n\n" +
indent + " inline std::uint64_t count() const\n" +
indent + " inline std::uint64_t count() const SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return m_count;\n" +
indent + " }\n\n" +
indent + " inline bool hasNext() const\n" +
indent + " inline bool hasNext() const SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return m_index + 1 < m_count;\n" +
indent + " }\n\n" +
Expand Down Expand Up @@ -331,7 +331,7 @@ private static CharSequence generateGroupProperty(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId()\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n",
Expand Down Expand Up @@ -361,11 +361,11 @@ private static CharSequence generateGroupProperty(
cppTypeForNumInGroup));

sb.append(String.format(
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n" +
indent + " bool %1$sInActingVersion()\n" +
indent + " bool %1$sInActingVersion() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + "#if defined(__clang__)\n" +
indent + "#pragma clang diagnostic push\n" +
Expand Down Expand Up @@ -516,19 +516,19 @@ private void generateVarDataDescriptors(
{
sb.append(String.format(
"\n" +
indent + " static const char *%1$sCharacterEncoding()\n" +
indent + " static const char *%1$sCharacterEncoding() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return \"%2$s\";\n" +
indent + " }\n\n",
toLowerFirstChar(propertyName),
characterEncoding));

sb.append(String.format(
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n" +
indent + " bool %1$sInActingVersion()\n" +
indent + " bool %1$sInActingVersion() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + "#if defined(__clang__)\n" +
indent + "#pragma clang diagnostic push\n" +
Expand All @@ -539,7 +539,7 @@ private void generateVarDataDescriptors(
indent + "#pragma clang diagnostic pop\n" +
indent + "#endif\n" +
indent + " }\n\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId()\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %3$d;\n" +
indent + " }\n\n",
Expand All @@ -549,7 +549,7 @@ private void generateVarDataDescriptors(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %sHeaderLength()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %sHeaderLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %d;\n" +
indent + " }\n",
Expand Down Expand Up @@ -844,8 +844,10 @@ private static CharSequence generateFileHeader(
"#endif\n\n" +
"#if __cplusplus >= 201103L\n" +
"# define SBE_CONSTEXPR constexpr\n" +
"# define SBE_NOEXCEPT noexcept\n" +
"#else\n" +
"# define SBE_CONSTEXPR\n" +
"# define SBE_NOEXCEPT\n" +
"#endif\n\n" +
"#include <sbe/sbe.h>\n\n",
String.join("_", namespaces).toUpperCase(),
Expand Down Expand Up @@ -964,7 +966,7 @@ private CharSequence generatePrimitiveFieldMetaData(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR %1$s %2$sNullValue()\n" +
indent + " static SBE_CONSTEXPR %1$s %2$sNullValue() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %3$s;\n" +
indent + " }\n",
Expand All @@ -974,7 +976,7 @@ private CharSequence generatePrimitiveFieldMetaData(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR %1$s %2$sMinValue()\n" +
indent + " static SBE_CONSTEXPR %1$s %2$sMinValue() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %3$s;\n" +
indent + " }\n",
Expand All @@ -984,7 +986,7 @@ private CharSequence generatePrimitiveFieldMetaData(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR %1$s %2$sMaxValue()\n" +
indent + " static SBE_CONSTEXPR %1$s %2$sMaxValue() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %3$s;\n" +
indent + " }\n",
Expand All @@ -994,7 +996,7 @@ private CharSequence generatePrimitiveFieldMetaData(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength()\n" +
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n",
Expand Down Expand Up @@ -1049,7 +1051,7 @@ private CharSequence generateArrayProperty(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sLength()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n",
Expand Down Expand Up @@ -1165,7 +1167,7 @@ private CharSequence generateConstPropertyMethods(
{
return String.format(
"\n" +
indent + " static SBE_CONSTEXPR %1$s %2$s()\n" +
indent + " static SBE_CONSTEXPR %1$s %2$s() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %3$s;\n" +
indent + " }\n",
Expand All @@ -1190,7 +1192,7 @@ private CharSequence generateConstPropertyMethods(

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sLength()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n",
Expand Down Expand Up @@ -1263,7 +1265,7 @@ private static CharSequence generateFixedFlyweightCode(final String className, f
"#if __cplusplus >= 201103L\n" +
" %1$s(%1$s&& codec) :\n" +
" m_buffer(codec.m_buffer), m_offset(codec.m_offset), m_actingVersion(codec.m_actingVersion){}\n\n" +
" %1$s& operator=(%1$s&& codec)\n" +
" %1$s& operator=(%1$s&& codec) SBE_NOEXCEPT\n" +
" {\n" +
" m_buffer = codec.m_buffer;\n" +
" m_bufferLength = codec.m_bufferLength;\n" +
Expand All @@ -1272,7 +1274,7 @@ private static CharSequence generateFixedFlyweightCode(final String className, f
" return *this;\n" +
" }\n\n" +
"#endif\n\n" +
" %1$s& operator=(const %1$s& codec)\n" +
" %1$s& operator=(const %1$s& codec) SBE_NOEXCEPT\n" +
" {\n" +
" m_buffer = codec.m_buffer;\n" +
" m_bufferLength = codec.m_bufferLength;\n" +
Expand All @@ -1286,15 +1288,15 @@ private static CharSequence generateFixedFlyweightCode(final String className, f
" reset(buffer, offset, bufferLength, actingVersion);\n" +
" return *this;\n" +
" }\n\n" +
" static SBE_CONSTEXPR std::uint64_t encodedLength()\n" +
" static SBE_CONSTEXPR std::uint64_t encodedLength() SBE_NOEXCEPT\n" +
" {\n" +
" return %2$s;\n" +
" }\n\n" +
" std::uint64_t offset() const\n" +
" std::uint64_t offset() const SBE_NOEXCEPT\n" +
" {\n" +
" return m_offset;\n" +
" }\n\n" +
" char *buffer()\n" +
" char *buffer() SBE_NOEXCEPT\n" +
" {\n" +
" return m_buffer;\n" +
" }\n\n",
Expand Down Expand Up @@ -1379,27 +1381,27 @@ private CharSequence generateMessageFlyweightCode(final String className, final
" }\n\n" +
"public:\n\n" +
"%11$s" +
" static SBE_CONSTEXPR %1$s sbeBlockLength()\n" +
" static SBE_CONSTEXPR %1$s sbeBlockLength() SBE_NOEXCEPT\n" +
" {\n" +
" return %2$s;\n" +
" }\n\n" +
" static SBE_CONSTEXPR %3$s sbeTemplateId()\n" +
" static SBE_CONSTEXPR %3$s sbeTemplateId() SBE_NOEXCEPT\n" +
" {\n" +
" return %4$s;\n" +
" }\n\n" +
" static SBE_CONSTEXPR %5$s sbeSchemaId()\n" +
" static SBE_CONSTEXPR %5$s sbeSchemaId() SBE_NOEXCEPT\n" +
" {\n" +
" return %6$s;\n" +
" }\n\n" +
" static SBE_CONSTEXPR %7$s sbeSchemaVersion()\n" +
" static SBE_CONSTEXPR %7$s sbeSchemaVersion() SBE_NOEXCEPT\n" +
" {\n" +
" return %8$s;\n" +
" }\n\n" +
" static SBE_CONSTEXPR const char * sbeSemanticType()\n" +
" static SBE_CONSTEXPR const char * sbeSemanticType() SBE_NOEXCEPT\n" +
" {\n" +
" return \"%9$s\";\n" +
" }\n\n" +
" std::uint64_t offset() const\n" +
" std::uint64_t offset() const SBE_NOEXCEPT\n" +
" {\n" +
" return m_offset;\n" +
" }\n\n" +
Expand All @@ -1415,7 +1417,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final
" reset(buffer, offset, bufferLength, actingBlockLength, actingVersion);\n" +
" return *this;\n" +
" }\n\n" +
" std::uint64_t position() const\n" +
" std::uint64_t position() const SBE_NOEXCEPT\n" +
" {\n" +
" return m_position;\n" +
" }\n\n" +
Expand All @@ -1427,15 +1429,15 @@ private CharSequence generateMessageFlyweightCode(final String className, final
" }\n" +
" m_position = position;\n" +
" }\n\n" +
" std::uint64_t encodedLength() const\n" +
" std::uint64_t encodedLength() const SBE_NOEXCEPT\n" +
" {\n" +
" return position() - m_offset;\n" +
" }\n\n" +
" char *buffer()\n" +
" char *buffer() SBE_NOEXCEPT\n" +
" {\n" +
" return m_buffer;\n" +
" }\n\n" +
" std::uint64_t actingVersion() const\n" +
" std::uint64_t actingVersion() const SBE_NOEXCEPT\n" +
" {\n" +
" return m_actingVersion;\n" +
" }\n",
Expand Down Expand Up @@ -1466,19 +1468,19 @@ private CharSequence generateFields(final String containingClassName, final List

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId()\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n",
propertyName,
signalToken.id()));

sb.append(String.format(
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion()\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n" +
indent + " bool %1$sInActingVersion()\n" +
indent + " bool %1$sInActingVersion() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + "#if defined(__clang__)\n" +
indent + "#pragma clang diagnostic push\n" +
Expand All @@ -1493,7 +1495,7 @@ private CharSequence generateFields(final String containingClassName, final List
signalToken.version()));

sb.append(String.format(
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingOffset()\n" +
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingOffset() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n\n",
Expand Down Expand Up @@ -1538,7 +1540,8 @@ private static void generateFieldMetaAttributeMethod(

sb.append(String.format(
"\n" +
indent + " static const char *%sMetaAttribute(const MetaAttribute::Attribute metaAttribute)\n" +
indent + " static const char *%sMetaAttribute(const MetaAttribute::Attribute metaAttribute)" +
" SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " switch (metaAttribute)\n" +
indent + " {\n" +
Expand Down Expand Up @@ -1592,7 +1595,7 @@ private CharSequence generateEnumProperty(

sb.append(String.format(
"\n" +
indent + " %1$s::Value %2$s() const\n" +
indent + " %1$s::Value %2$s() const SBE_NOEXCEPT\n" +
indent + " {\n" +
"%3$s" +
indent + " return %1$s::Value::%4$s;\n" +
Expand Down Expand Up @@ -1632,7 +1635,7 @@ private CharSequence generateEnumProperty(
formatByteOrderEncoding(token.encoding().byteOrder(), token.encoding().primitiveType())));

sb.append(String.format(
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength()\n" +
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n",
Expand Down Expand Up @@ -1671,7 +1674,7 @@ private static Object generateBitsetProperty(final String propertyName, final To

sb.append(String.format(
"\n" +
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength()\n" +
indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n",
Expand Down