summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorAlex Turbov <i.zaufi@gmail.com>2022-08-23 15:33:09 (GMT)
committerAlex Turbov <i.zaufi@gmail.com>2022-11-17 12:37:10 (GMT)
commitccff0b87a28177cd9f298adc9b650e5143b371f6 (patch)
tree3fea7e763c26446f58df868637934cd23422d656 /Source
parent067dcb9efdffab683ce0bd299db7bfb45eaef859 (diff)
downloadCMake-ccff0b87a28177cd9f298adc9b650e5143b371f6.zip
CMake-ccff0b87a28177cd9f298adc9b650e5143b371f6.tar.gz
CMake-ccff0b87a28177cd9f298adc9b650e5143b371f6.tar.bz2
cmDocumentation: Accept `Iterable` instead of `vector` on add entries
Diffstat (limited to 'Source')
-rw-r--r--Source/cmDocumentation.cxx20
-rw-r--r--Source/cmDocumentation.h24
2 files changed, 18 insertions, 26 deletions
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 9f9393d..93685ad 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -373,14 +373,6 @@ void cmDocumentation::SetSection(const char* name,
this->SectionAtName(name) = std::move(section);
}
-void cmDocumentation::SetSection(const char* name,
- std::vector<cmDocumentationEntry>& docs)
-{
- cmDocumentationSection sec{ name };
- sec.Append(docs);
- this->SetSection(name, std::move(sec));
-}
-
void cmDocumentation::SetSection(const char* name, const char* docs[][2])
{
cmDocumentationSection sec{ name };
@@ -406,24 +398,12 @@ void cmDocumentation::PrependSection(const char* name, const char* docs[][2])
this->SectionAtName(name).Prepend(docs);
}
-void cmDocumentation::PrependSection(const char* name,
- std::vector<cmDocumentationEntry>& docs)
-{
- this->SectionAtName(name).Prepend(docs);
-}
-
void cmDocumentation::AppendSection(const char* name, const char* docs[][2])
{
this->SectionAtName(name).Append(docs);
}
void cmDocumentation::AppendSection(const char* name,
- std::vector<cmDocumentationEntry>& docs)
-{
- this->SectionAtName(name).Append(docs);
-}
-
-void cmDocumentation::AppendSection(const char* name,
cmDocumentationEntry& docs)
{
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h
index 4055039..de5449a 100644
--- a/Source/cmDocumentation.h
+++ b/Source/cmDocumentation.h
@@ -7,6 +7,7 @@
#include <iosfwd>
#include <map>
#include <string>
+#include <utility>
#include <vector>
#include "cmDocumentationFormatter.h"
@@ -74,19 +75,30 @@ public:
/** Set a section of the documentation. Typical sections include Name,
Usage, Description, Options */
void SetSection(const char* sectionName, cmDocumentationSection section);
- void SetSection(const char* sectionName,
- std::vector<cmDocumentationEntry>& docs);
+ template <typename Iterable>
+ void SetSection(const char* sectionName, const Iterable& docs)
+ {
+ cmDocumentationSection sec{ sectionName };
+ sec.Append(docs);
+ this->SetSection(sectionName, std::move(sec));
+ }
void SetSection(const char* sectionName, const char* docs[][2]);
void SetSections(std::map<std::string, cmDocumentationSection> sections);
/** Add the documentation to the beginning/end of the section */
void PrependSection(const char* sectionName, const char* docs[][2]);
- void PrependSection(const char* sectionName,
- std::vector<cmDocumentationEntry>& docs);
+ template <typename Iterable>
+ void PrependSection(const char* sectionName, const Iterable& docs)
+ {
+ this->SectionAtName(sectionName).Prepend(docs);
+ }
void PrependSection(const char* sectionName, cmDocumentationEntry& docs);
void AppendSection(const char* sectionName, const char* docs[][2]);
- void AppendSection(const char* sectionName,
- std::vector<cmDocumentationEntry>& docs);
+ template <typename Iterable>
+ void AppendSection(const char* sectionName, const Iterable& docs)
+ {
+ this->SectionAtName(sectionName).Append(docs);
+ }
void AppendSection(const char* sectionName, cmDocumentationEntry& docs);
/** Add common (to all tools) documentation section(s) */