81 template <
class TIterator>
92 std::is_pointer_v<TIterator>,
93 std::remove_pointer_t<TIterator>,
94 typename std::iterator_traits<TIterator>::value_type
120 template <
typename TItem>
125 writer << std::to_string(item);
158 , m_transform(DefaultTransform<TUnderlying>)
178 , m_transform(std::move(transform))
185 for (TIterator item = m_begin; item != m_end; ++item)
203 m_transform(writer, *item, index);
Command for outputting a list of items, comma-separated by default.
Definition: CommaList.hpp:84
CommaList(TIterator begin, TIterator end, const CommaListOptions &options, TTransform &&transform) noexcept
Definition: CommaList.hpp:170
std::function< void(Writer &writer, const TUnderlying &item, size_t listIndex)> TTransform
Definition: CommaList.hpp:105
typename std::conditional< std::is_pointer_v< TIterator >, std::remove_pointer_t< TIterator >, typename std::iterator_traits< TIterator >::value_type >::type TUnderlying
Definition: CommaList.hpp:95
static void DefaultTransform(Writer &writer, const std::string &item, size_t listIndex)
Definition: CommaList.hpp:137
CommaList(TIterator begin, TIterator end, const CommaListOptions &options={})
Definition: CommaList.hpp:151
static void DefaultTransform(Writer &writer, const TItem &item, size_t listIndex)
Default transform function for the command.
Definition: CommaList.hpp:121
void Visit(Writer &writer) override
Definition: CommaList.hpp:182
Base class for commands.
Definition: Command.hpp:44
Pure virtual interface for writers.
Definition: Writer.hpp:44
Definition: Braces.hpp:29
Options for the CommaList command.
Definition: CommaListOptions.hpp:36
std::string chunkBeginSeparator
Definition: CommaListOptions.hpp:43
bool skipFirstItemBeginSeparator
Definition: CommaListOptions.hpp:61
bool addNewLines
Definition: CommaListOptions.hpp:56
bool skipLastItemEndSeparator
Definition: CommaListOptions.hpp:66
std::string chunkEndSeparator
Definition: CommaListOptions.hpp:51
Command for outtputing a new line chunk.
Definition: NextLine.hpp:36