26#include <boost/format.hpp>
28#include <SimoxUtility/algorithm/string/string_tools.h>
36 const std::string& doc,
37 const bool enforceBlockGeneration) :
40 enforceBlockGeneration(enforceBlockGeneration)
49 std::string delimiters =
"\n";
50 std::vector<std::string> doclines = simox::alg::split(doc, delimiters);
51 writer->body.line(
"/**");
53 for (
auto& line : doclines)
55 writer->body.line(
" * " + line);
58 writer->body.line(
" */");
61 writer->body.line(header);
63 if (simox::alg::ends_with(simox::alg::trim_copy(header),
";"))
70 auto writeBlock = [
this, writer]()
74 block->writeCpp(writer);
100 block->addLine(line);
110 block->addLine(line);
120 block->addBlock(new_block);
132 this->compact = compact;
138 this->enforceBlockGeneration = enforceBlockGeneration;
void setBlock(const CppBlockPtr &block)
void writeCpp(const CppWriterPtr &writer)
void addLine(const std::string &line)
void setEnforceBlockGeneration(bool enforceBlockGeneration)
void setCompact(bool compact)
void addBlock(const CppBlockPtr &block)
CppMethod(const std::string &header, const std::string &doc="", const bool enforceBlockGeneration=false)
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< CppWriter > CppWriterPtr
std::shared_ptr< CppBlock > CppBlockPtr