File tree 1 file changed +11
-2
lines changed
sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -584,16 +584,25 @@ private void generateChoiceSet(final List<Token> tokens) throws IOException
584
584
out .append (generateClassDeclaration (bitSetName ));
585
585
out .append (generateFixedFlyweightCode (bitSetName , tokens .get (0 ).encodedLength ()));
586
586
587
- out .append (String .format (" \n " +
587
+ out .append (String .format (
588
588
" %1$s &clear()\n " +
589
589
" {\n " +
590
590
" %2$s zero = 0;\n " +
591
591
" std::memcpy(m_buffer + m_offset, &zero, sizeof(%2$s));\n " +
592
592
" return *this;\n " +
593
- " }\n \n " ,
593
+ " }\n " ,
594
594
bitSetName ,
595
595
cppTypeName (tokens .get (0 ).encoding ().primitiveType ())));
596
596
597
+ out .append (String .format ("\n " +
598
+ " bool isEmpty() const\n " +
599
+ " {\n " +
600
+ " %1$s val;\n " +
601
+ " std::memcpy(&val, m_buffer + m_offset, sizeof(%1$s));\n " +
602
+ " return 0 == val;\n " +
603
+ " }\n " ,
604
+ cppTypeName (tokens .get (0 ).encoding ().primitiveType ())));
605
+
597
606
out .append (generateChoices (bitSetName , tokens .subList (1 , tokens .size () - 1 )));
598
607
out .append ("};\n " );
599
608
out .append (CppUtil .closingBraces (ir .namespaces ().length )).append ("#endif\n " );
You can’t perform that action at this time.
0 commit comments