From e9559c434c324a383f9dd931360de5a9a7b045ed Mon Sep 17 00:00:00 2001 From: cpp977 Date: Tue, 27 Aug 2024 07:34:42 +0000 Subject: [PATCH] deploy: 3139c6cdd49c83d3c4b299bbf7096374794b62fc --- ASTBuilderAction_8cpp.html | 2 +- ASTBuilderAction_8cpp_source.html | 2 +- ASTBuilderAction_8hpp.html | 2 +- ASTBuilderAction_8hpp_source.html | 2 +- ASTCreation_8cpp.html | 2 +- ASTCreation_8cpp_source.html | 2 +- ASTCreation_8hpp.html | 2 +- ASTCreation_8hpp_source.html | 2 +- AllASTBuilderAction_8cpp.html | 2 +- AllASTBuilderAction_8cpp_source.html | 2 +- AllASTBuilderAction_8hpp.html | 2 +- AllASTBuilderAction_8hpp_source.html | 2 +- DeleteInstantiations_8cpp.html | 2 +- DeleteInstantiations_8cpp_source.html | 2 +- DeleteInstantiations_8hpp.html | 2 +- DeleteInstantiations_8hpp_source.html | 2 +- DependencyAction_8cpp.html | 2 +- DependencyAction_8cpp_source.html | 2 +- DependencyAction_8hpp.html | 2 +- DependencyAction_8hpp_source.html | 2 +- GetNeededInstantiations_8cpp.html | 4 +- GetNeededInstantiations_8cpp__incl.map | 84 +-- GetNeededInstantiations_8cpp__incl.md5 | 2 +- GetNeededInstantiations_8cpp__incl.svg | 274 ++++++---- GetNeededInstantiations_8cpp_source.html | 8 +- GetNeededInstantiations_8hpp.html | 4 +- GetNeededInstantiations_8hpp__incl.map | 64 ++- GetNeededInstantiations_8hpp__incl.md5 | 2 +- GetNeededInstantiations_8hpp__incl.svg | 192 ++++--- GetNeededInstantiations_8hpp_source.html | 2 +- InjectInstantiation_8cpp.html | 4 +- InjectInstantiation_8cpp__incl.map | 129 ++--- InjectInstantiation_8cpp__incl.md5 | 2 +- InjectInstantiation_8cpp__incl.svg | 479 ++++++++++-------- InjectInstantiation_8cpp_source.html | 14 +- InjectInstantiation_8hpp.html | 4 +- InjectInstantiation_8hpp__incl.map | 64 ++- InjectInstantiation_8hpp__incl.md5 | 2 +- InjectInstantiation_8hpp__incl.svg | 192 ++++--- InjectInstantiation_8hpp_source.html | 2 +- Injection_8cpp.html | 4 +- Injection_8cpp__incl.map | 96 ++-- Injection_8cpp__incl.md5 | 2 +- Injection_8cpp__incl.svg | 366 +++++++------ Injection_8cpp_source.html | 256 +++++----- Injection_8hpp.html | 5 +- Injection_8hpp__incl.map | 54 +- Injection_8hpp__incl.md5 | 2 +- Injection_8hpp__incl.svg | 168 ++++-- Injection_8hpp_source.html | 168 +++--- Instantiator_8cpp.html | 2 +- Instantiator_8cpp__incl.map | 86 ++-- Instantiator_8cpp__incl.md5 | 2 +- Instantiator_8cpp__incl.svg | 304 ++++++----- Instantiator_8cpp_source.html | 9 +- Matcher_8cpp.html | 2 +- Matcher_8cpp_source.html | 2 +- Matcher_8hpp.html | 2 +- Matcher_8hpp_source.html | 2 +- Param_8cpp.html | 2 +- Param_8cpp_source.html | 2 +- Param_8hpp.html | 2 +- Param_8hpp_source.html | 4 +- Parsing_8cpp.html | 5 +- Parsing_8cpp__incl.map | 14 +- Parsing_8cpp__incl.md5 | 2 +- Parsing_8cpp__incl.svg | 46 +- Parsing_8cpp_source.html | 153 +++--- Parsing_8hpp.html | 2 +- Parsing_8hpp_source.html | 6 +- ProgressBar_8cpp.html | 2 +- ProgressBar_8cpp_source.html | 2 +- ProgressBar_8hpp.html | 2 +- ProgressBar_8hpp_source.html | 2 +- TemplateArgument_8cpp.html | 149 ++++++ TemplateArgument_8cpp__incl.map | 24 + TemplateArgument_8cpp__incl.md5 | 1 + TemplateArgument_8cpp__incl.svg | 210 ++++++++ TemplateArgument_8cpp_source.html | 247 +++++++++ TemplateArgument_8hpp.html | 172 +++++++ TemplateArgument_8hpp.js | 11 + TemplateArgument_8hpp__dep__incl.map | 31 ++ TemplateArgument_8hpp__dep__incl.md5 | 1 + TemplateArgument_8hpp__dep__incl.svg | 275 ++++++++++ TemplateArgument_8hpp__incl.map | 13 + TemplateArgument_8hpp__incl.md5 | 1 + TemplateArgument_8hpp__incl.svg | 111 ++++ TemplateArgument_8hpp_source.html | 212 ++++++++ Template_8cpp.html | 8 +- Template_8cpp__incl.map | 100 ++-- Template_8cpp__incl.md5 | 2 +- Template_8cpp__incl.svg | 378 +++++++++----- Template_8cpp_source.html | 194 ++++--- Template_8hpp.html | 5 +- Template_8hpp__incl.map | 71 +-- Template_8hpp__incl.md5 | 2 +- Template_8hpp__incl.svg | 213 +++++--- Template_8hpp_source.html | 118 +++-- annotated.html | 33 +- annotated_dup.js | 4 + classASTBuilderAction-members.html | 2 +- classASTBuilderAction.html | 2 +- classAllASTBuilderAction-members.html | 2 +- classAllASTBuilderAction.html | 2 +- classDeleteInstantiations-members.html | 2 +- classDeleteInstantiations.html | 2 +- classDependencyAction-members.html | 2 +- classDependencyAction.html | 2 +- classGetNeededInstantiations-members.html | 2 +- classGetNeededInstantiations.html | 4 +- classGetNeededInstantiations__coll__graph.map | 43 +- classGetNeededInstantiations__coll__graph.md5 | 2 +- classGetNeededInstantiations__coll__graph.svg | 182 ++++--- classInjectInstantiation-members.html | 2 +- classInjectInstantiation.html | 4 +- classInjectInstantiation__coll__graph.map | 43 +- classInjectInstantiation__coll__graph.md5 | 2 +- classInjectInstantiation__coll__graph.svg | 182 ++++--- classProgressBar-members.html | 2 +- classProgressBar.html | 2 +- classes.html | 6 +- ...1formatter_3_01Injection_01_4-members.html | 2 +- classfmt_1_1formatter_3_01Injection_01_4.html | 8 +- ...ator_1_1TemplateArgument_01_4-members.html | 132 +++++ ...Instantiator_1_1TemplateArgument_01_4.html | 209 ++++++++ ...01Instantiator_1_1TemplateArgument_01_4.js | 5 + ...t_1_1formatter_3_01Param_01_4-members.html | 2 +- classfmt_1_1formatter_3_01Param_01_4.html | 2 +- ..._1formatter_3_01Template_01_4-members.html | 2 +- classfmt_1_1formatter_3_01Template_01_4.html | 8 +- classmyDependencyCollector-members.html | 2 +- classmyDependencyCollector.html | 2 +- dir_000001_000005.html | 2 +- dir_000003_000005.html | 2 +- dir_000007_000005.html | 2 +- dir_000009_000005.html | 2 +- dir_000010_000005.html | 4 +- dir_0852b6145d5475d7a8e4df489fe46e4c.html | 2 +- dir_0f2339d204149e590ec376b2c2ae3818.html | 2 +- dir_2e7bc315ac635c331cd07eec05ee834f.html | 2 +- dir_68267d1309a1af8e8297ef4c3efbcdba.html | 4 +- dir_68267d1309a1af8e8297ef4c3efbcdba.js | 3 +- dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map | 2 +- dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 | 2 +- dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg | 4 +- dir_787487f7d02fdf694fb2dc9ce3b61b2b.html | 2 +- dir_7b13917f847da1f7b289bf78886ebc77.html | 2 +- dir_b8f4473302bc85bc90141e5ae078c276.html | 2 +- dir_cab52edb0a880aba27eada31817ee90d.html | 2 +- dir_d44c64559bbebec7f509842c48db8b23.html | 4 +- dir_d44c64559bbebec7f509842c48db8b23.js | 3 +- dir_dc3b1763f616f33684c71eaff7522e72.html | 2 +- dir_fae119eb913a40fe8ed97cde8b98911e.html | 2 +- doxygen_crawl.html | 13 + files.html | 40 +- functions.html | 23 +- functions_func.html | 12 +- functions_type.html | 2 +- functions_vars.html | 12 +- globals.html | 2 +- globals_func.html | 2 +- globals_vars.html | 2 +- graph_legend.html | 2 +- hierarchy.html | 36 +- hierarchy.js | 2 + index.html | 4 +- inherit_graph_10.map | 2 +- inherit_graph_10.md5 | 2 +- inherit_graph_10.svg | 10 +- inherit_graph_11.map | 2 +- inherit_graph_11.md5 | 2 +- inherit_graph_11.svg | 10 +- inherit_graph_12.map | 3 + inherit_graph_12.md5 | 1 + inherit_graph_12.svg | 21 + inherit_graph_13.map | 3 + inherit_graph_13.md5 | 1 + inherit_graph_13.svg | 21 + inherit_graph_5.map | 2 +- inherit_graph_5.md5 | 2 +- inherit_graph_5.svg | 13 +- inherit_graph_6.map | 2 +- inherit_graph_6.md5 | 2 +- inherit_graph_6.svg | 10 +- inherit_graph_7.map | 2 +- inherit_graph_7.md5 | 2 +- inherit_graph_7.svg | 10 +- inherit_graph_8.map | 2 +- inherit_graph_8.md5 | 2 +- inherit_graph_8.svg | 10 +- inherit_graph_9.map | 2 +- inherit_graph_9.md5 | 2 +- inherit_graph_9.svg | 10 +- inherits.html | 18 +- main_8md.html | 2 +- menudata.js | 5 +- namespaceInstantiator.html | 178 +++++++ namespaceInstantiator.js | 10 + namespaceclang.html | 2 +- namespaceinternal.html | 6 +- namespacemembers.html | 3 +- namespacemembers_enum.html | 127 +++++ namespacemembers_func.html | 2 +- namespaces.html | 8 +- namespaces_dup.js | 1 + navtreedata.js | 6 +- navtreeindex0.js | 241 +++++---- navtreeindex1.js | 16 + pages.html | 2 +- search/all_10.js | 19 +- search/all_11.js | 4 +- search/all_12.js | 5 + search/all_2.js | 7 +- search/all_5.js | 13 +- search/all_7.js | 4 +- search/all_8.js | 4 +- search/all_9.js | 10 +- search/all_a.js | 15 +- search/all_b.js | 11 +- search/all_c.js | 19 +- search/all_d.js | 22 +- search/all_e.js | 11 +- search/all_f.js | 20 +- search/classes_2.js | 5 +- search/classes_7.js | 3 +- search/enums_0.js | 4 + search/enumvalues_0.js | 4 + search/enumvalues_1.js | 4 + search/enumvalues_2.js | 5 + search/files_6.js | 4 +- search/functions_2.js | 5 +- search/functions_5.js | 2 +- search/functions_9.js | 5 +- search/functions_a.js | 2 +- search/functions_b.js | 2 +- search/namespaces_1.js | 3 +- search/searchdata.js | 16 +- search/variables_2.js | 2 +- search/variables_6.js | 2 +- search/variables_7.js | 4 +- search/variables_8.js | 5 +- search/variables_9.js | 3 +- search/variables_a.js | 4 +- search/variables_b.js | 6 +- search/variables_c.js | 7 + structInjection-members.html | 4 +- structInjection.html | 48 +- structInjection.js | 2 +- structInjection__coll__graph.map | 31 +- structInjection__coll__graph.md5 | 2 +- structInjection__coll__graph.svg | 152 ++++-- ...tantiator_1_1TemplateArgument-members.html | 137 +++++ structInstantiator_1_1TemplateArgument.html | 332 ++++++++++++ structInstantiator_1_1TemplateArgument.js | 10 + ...iator_1_1TemplateArgument__coll__graph.map | 9 + ...iator_1_1TemplateArgument__coll__graph.md5 | 1 + ...iator_1_1TemplateArgument__coll__graph.svg | 78 +++ structParam-members.html | 2 +- structParam.html | 2 +- structProgressStyle-members.html | 2 +- structProgressStyle.html | 2 +- structTemplate-members.html | 23 +- structTemplate.html | 48 +- structTemplate.js | 1 + structTemplate__coll__graph.map | 27 +- structTemplate__coll__graph.md5 | 2 +- structTemplate__coll__graph.svg | 130 +++-- todo.html | 2 +- 268 files changed, 6580 insertions(+), 2508 deletions(-) create mode 100644 TemplateArgument_8cpp.html create mode 100644 TemplateArgument_8cpp__incl.map create mode 100644 TemplateArgument_8cpp__incl.md5 create mode 100644 TemplateArgument_8cpp__incl.svg create mode 100644 TemplateArgument_8cpp_source.html create mode 100644 TemplateArgument_8hpp.html create mode 100644 TemplateArgument_8hpp.js create mode 100644 TemplateArgument_8hpp__dep__incl.map create mode 100644 TemplateArgument_8hpp__dep__incl.md5 create mode 100644 TemplateArgument_8hpp__dep__incl.svg create mode 100644 TemplateArgument_8hpp__incl.map create mode 100644 TemplateArgument_8hpp__incl.md5 create mode 100644 TemplateArgument_8hpp__incl.svg create mode 100644 TemplateArgument_8hpp_source.html create mode 100644 classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4-members.html create mode 100644 classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html create mode 100644 classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.js create mode 100644 inherit_graph_12.map create mode 100644 inherit_graph_12.md5 create mode 100644 inherit_graph_12.svg create mode 100644 inherit_graph_13.map create mode 100644 inherit_graph_13.md5 create mode 100644 inherit_graph_13.svg create mode 100644 namespaceInstantiator.html create mode 100644 namespaceInstantiator.js create mode 100644 namespacemembers_enum.html create mode 100644 navtreeindex1.js create mode 100644 search/all_12.js create mode 100644 search/enums_0.js create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_2.js create mode 100644 search/variables_c.js create mode 100644 structInstantiator_1_1TemplateArgument-members.html create mode 100644 structInstantiator_1_1TemplateArgument.html create mode 100644 structInstantiator_1_1TemplateArgument.js create mode 100644 structInstantiator_1_1TemplateArgument__coll__graph.map create mode 100644 structInstantiator_1_1TemplateArgument__coll__graph.md5 create mode 100644 structInstantiator_1_1TemplateArgument__coll__graph.svg diff --git a/ASTBuilderAction_8cpp.html b/ASTBuilderAction_8cpp.html index 646fd042..e0512d32 100644 --- a/ASTBuilderAction_8cpp.html +++ b/ASTBuilderAction_8cpp.html @@ -121,7 +121,7 @@ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TemplateArgument.cpp File Reference
+
+
+
#include "TemplateArgument.hpp"
+#include <clang/AST/TemplateBase.h>
+#include <cstddef>
+#include "spdlog/spdlog.h"
+#include "clang/AST/TemplateName.h"
+#include "llvm/ADT/SmallString.h"
+
+Include dependency graph for TemplateArgument.cpp:
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

namespace  Instantiator
 
+
+
+ + + + + + diff --git a/TemplateArgument_8cpp__incl.map b/TemplateArgument_8cpp__incl.map new file mode 100644 index 00000000..6d9acd15 --- /dev/null +++ b/TemplateArgument_8cpp__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TemplateArgument_8cpp__incl.md5 b/TemplateArgument_8cpp__incl.md5 new file mode 100644 index 00000000..d3567d95 --- /dev/null +++ b/TemplateArgument_8cpp__incl.md5 @@ -0,0 +1 @@ +31631d5bc97a92ba881aed502f8537f3 \ No newline at end of file diff --git a/TemplateArgument_8cpp__incl.svg b/TemplateArgument_8cpp__incl.svg new file mode 100644 index 00000000..06944f20 --- /dev/null +++ b/TemplateArgument_8cpp__incl.svg @@ -0,0 +1,210 @@ + + + + + + +src/TemplateArgument.cpp + + +Node1 + + +src/TemplateArgument.cpp + + + + + +Node2 + + +TemplateArgument.hpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +clang/AST/TemplateBase.h + + + + + +Node1->Node3 + + + + + + + + +Node8 + + +cstddef + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +spdlog/spdlog.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +clang/AST/TemplateName.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +llvm/ADT/SmallString.h + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +string + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +fmt/color.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +fmt/core.h + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +clang/AST/PrettyPrinter.h + + + + + +Node2->Node7 + + + + + + + + diff --git a/TemplateArgument_8cpp_source.html b/TemplateArgument_8cpp_source.html new file mode 100644 index 00000000..645e0142 --- /dev/null +++ b/TemplateArgument_8cpp_source.html @@ -0,0 +1,247 @@ + + + + + + + + +Instantiator: src/TemplateArgument.cpp Source File + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
TemplateArgument.cpp
+
+
+Go to the documentation of this file.
+
2
+
3#include <clang/AST/TemplateBase.h>
+
4#include <cstddef>
+
5
+
6#include "spdlog/spdlog.h"
+
7
+
8#include "clang/AST/TemplateName.h"
+
9#include "llvm/ADT/SmallString.h"
+
10
+
11namespace Instantiator {
+
12
+
+
13std::string TemplateArgument::name(const std::string& sep) const
+
14{
+
15 std::string out = {};
+
16 for(std::size_t i = 0; i < names.size(); ++i) {
+
17 if(i < names.size() - 1) {
+
18 out += names[i] + sep;
+
19 } else {
+
20 out += names[i];
+
21 }
+
22 }
+
23 return out;
+
24}
+
+
25
+
+
26TemplateArgument TemplateArgument::createFromTemplateArgument(const clang::TemplateArgument* parm, const clang::PrintingPolicy pp)
+
27{
+ +
29
+
30 out.is_dependent = parm->isDependent();
+
31
+
32 switch(parm->getKind()) {
+
33 case clang::TemplateArgument::ArgKind::Type: {
+
34 out.names[0] = parm->getAsType().getAsString(pp);
+ +
36 spdlog::debug("type: {}", out.names[0]);
+
37 break;
+
38 }
+
39 case clang::TemplateArgument::ArgKind::Integral: {
+
40 llvm::SmallString<10> tmp_name;
+
41 parm->getAsIntegral().toString(tmp_name);
+
42 out.names[0] = tmp_name.str().str();
+ +
44 spdlog::debug("integral: {}", out.names[0]);
+
45 break;
+
46 }
+
47 case clang::TemplateArgument::ArgKind::Pack: {
+
48 out.names.resize(parm->pack_size());
+
49 for(auto pack_it = parm->pack_begin(); pack_it != parm->pack_end(); pack_it++) {
+
50 switch(pack_it->getKind()) {
+
51 case clang::TemplateArgument::ArgKind::Type: {
+
52 out.names[std::distance(parm->pack_begin(), pack_it)] = pack_it->getAsType().getAsString(pp);
+
53 break;
+
54 }
+
55 case clang::TemplateArgument::ArgKind::Integral: {
+
56 llvm::SmallString<10> name;
+
57 pack_it->getAsIntegral().toString(name);
+
58 out.names[std::distance(parm->pack_begin(), pack_it)] = name.str().str();
+
59 break;
+
60 }
+
61 default: {
+
62 break;
+
63 }
+
64 }
+
65 }
+ +
67 break;
+
68 }
+
69 case clang::TemplateArgument::ArgKind::Template: {
+
70 llvm::raw_string_ostream OS(out.names[0]);
+
71#if INSTANTIATOR_LLVM_MAJOR > 13
+
72 parm->getAsTemplate().print(OS, pp, clang::TemplateName::Qualified::Fully);
+
73#else
+
74 parm->getAsTemplate().print(OS, pp, false);
+
75#endif
+
76 OS.str();
+ +
78 break;
+
79 }
+
80 default: {
+
81 break;
+
82 }
+
83 }
+
84 return out;
+
85}
+
+
86
+
+ +
88{
+
89 spdlog::debug("name dependent={}, other.name dependent={}", is_dependent, other.is_dependent);
+
90 if(is_dependent or other.is_dependent) { return true /*kind == other.kind*/; }
+
91 spdlog::debug("Compare of {} and {}", name(), other.name());
+
92 return name() == other.name();
+
93}
+
+
94
+
95} // namespace Instantiator
+ + + + + + +
Struct for the collection of all relevant data for a function parameter.
+
std::vector< std::string > names
+ +
static TemplateArgument createFromTemplateArgument(const clang::TemplateArgument *parm, clang::PrintingPolicy pp)
+
std::string name(const std::string &sep=" ") const
+
bool compare(const TemplateArgument &other) const
+ +
+
+ + + + + + diff --git a/TemplateArgument_8hpp.html b/TemplateArgument_8hpp.html new file mode 100644 index 00000000..ac4f4419 --- /dev/null +++ b/TemplateArgument_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + +Instantiator: include/TemplateArgument.hpp File Reference + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TemplateArgument.hpp File Reference
+
+
+
#include <clang/AST/TemplateBase.h>
+#include <string>
+#include "fmt/color.h"
+#include "fmt/core.h"
+#include "clang/AST/PrettyPrinter.h"
+
+Include dependency graph for TemplateArgument.hpp:
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

struct  Instantiator::TemplateArgument
 Struct for the collection of all relevant data for a function parameter. More...
 
class  fmt::formatter< Instantiator::TemplateArgument >
 
+ + + +

+Namespaces

namespace  Instantiator
 
+ + + +

+Enumerations

enum class  Instantiator::Kind { Instantiator::Type +, Instantiator::NonType +, Instantiator::Template +, Instantiator::Pack + }
 
+
+
+ + + + + + diff --git a/TemplateArgument_8hpp.js b/TemplateArgument_8hpp.js new file mode 100644 index 00000000..c0c7dd32 --- /dev/null +++ b/TemplateArgument_8hpp.js @@ -0,0 +1,11 @@ +var TemplateArgument_8hpp = +[ + [ "Instantiator::TemplateArgument", "structInstantiator_1_1TemplateArgument.html", "structInstantiator_1_1TemplateArgument" ], + [ "fmt::formatter< Instantiator::TemplateArgument >", "classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html", "classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4" ], + [ "Kind", "TemplateArgument_8hpp.html#ae23a90b61c96d22e834f3e85684a1cda", [ + [ "Type", "TemplateArgument_8hpp.html#ae23a90b61c96d22e834f3e85684a1cdaaa1fa27779242b4902f7ae3bdd5c6d508", null ], + [ "NonType", "TemplateArgument_8hpp.html#ae23a90b61c96d22e834f3e85684a1cdaa8627a9054b6f456c6e15d7a0d57a9030", null ], + [ "Template", "TemplateArgument_8hpp.html#ae23a90b61c96d22e834f3e85684a1cdaa278c491bdd8a53618c149c4ac790da34", null ], + [ "Pack", "TemplateArgument_8hpp.html#ae23a90b61c96d22e834f3e85684a1cdaa4492081ca02b059f9e8af4ddaf0f7292", null ] + ] ] +]; \ No newline at end of file diff --git a/TemplateArgument_8hpp__dep__incl.map b/TemplateArgument_8hpp__dep__incl.map new file mode 100644 index 00000000..55c444b4 --- /dev/null +++ b/TemplateArgument_8hpp__dep__incl.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TemplateArgument_8hpp__dep__incl.md5 b/TemplateArgument_8hpp__dep__incl.md5 new file mode 100644 index 00000000..b3289430 --- /dev/null +++ b/TemplateArgument_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +bcfa46495b06cd235288c1d7b1af2ff1 \ No newline at end of file diff --git a/TemplateArgument_8hpp__dep__incl.svg b/TemplateArgument_8hpp__dep__incl.svg new file mode 100644 index 00000000..5345b35b --- /dev/null +++ b/TemplateArgument_8hpp__dep__incl.svg @@ -0,0 +1,275 @@ + + + + + + +include/TemplateArgument.hpp + + +Node1 + + +include/TemplateArgument.hpp + + + + + +Node2 + + +include/Injection.hpp + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +include/Template.hpp + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +src/Template.cpp + + + + + +Node1->Node9 + + + + + + + + +Node11 + + +src/TemplateArgument.cpp + + + + + +Node1->Node11 + + + + + + + + +Node3 + + +Instantiator.cpp + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +include/Callbacks/GetNeeded +Instantiations.hpp + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +src/Callbacks/GetNeededInstantiations.cpp + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +include/Callbacks/Inject +Instantiation.hpp + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +src/Callbacks/InjectInstantiation.cpp + + + + + +Node2->Node7 + + + + + + + + +Node2->Node8 + + + + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +src/Injection.cpp + + + + + +Node2->Node10 + + + + + + + + +Node4->Node3 + + + + + + + + +Node4->Node5 + + + + + + + + +Node6->Node3 + + + + + + + + +Node6->Node7 + + + + + + + + +Node8->Node7 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/TemplateArgument_8hpp__incl.map b/TemplateArgument_8hpp__incl.map new file mode 100644 index 00000000..5f99fd24 --- /dev/null +++ b/TemplateArgument_8hpp__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/TemplateArgument_8hpp__incl.md5 b/TemplateArgument_8hpp__incl.md5 new file mode 100644 index 00000000..f06bb173 --- /dev/null +++ b/TemplateArgument_8hpp__incl.md5 @@ -0,0 +1 @@ +a24b64c04cac1129443a2fcb1d329530 \ No newline at end of file diff --git a/TemplateArgument_8hpp__incl.svg b/TemplateArgument_8hpp__incl.svg new file mode 100644 index 00000000..d98af35f --- /dev/null +++ b/TemplateArgument_8hpp__incl.svg @@ -0,0 +1,111 @@ + + + + + + +include/TemplateArgument.hpp + + +Node1 + + +include/TemplateArgument.hpp + + + + + +Node2 + + +clang/AST/TemplateBase.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +string + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +fmt/color.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +fmt/core.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +clang/AST/PrettyPrinter.h + + + + + +Node1->Node6 + + + + + + + + diff --git a/TemplateArgument_8hpp_source.html b/TemplateArgument_8hpp_source.html new file mode 100644 index 00000000..ac4d8449 --- /dev/null +++ b/TemplateArgument_8hpp_source.html @@ -0,0 +1,212 @@ + + + + + + + + +Instantiator: include/TemplateArgument.hpp Source File + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
TemplateArgument.hpp
+
+
+Go to the documentation of this file.
1#ifndef INSTANTIATOR_TEMPLATE_ARGUMENT_H_
+
2#define INSTANTIATOR_TEMPLATE_ARGUMENT_H_
+
3
+
4#include <clang/AST/TemplateBase.h>
+
5#include <string>
+
6
+
7#include "fmt/color.h"
+
8#include "fmt/core.h"
+
9
+
10#include "clang/AST/PrettyPrinter.h"
+
11
+
+
12namespace Instantiator {
+
13
+
+
14enum class Kind
+
15{
+
16 Type,
+
17 NonType,
+ +
19 Pack
+
20};
+
+
21
+
+ +
26{
+ +
29
+
31 std::vector<std::string> names = {""};
+
32
+
33 std::string name(const std::string& sep = " ") const;
+
34
+
36 bool is_dependent = false;
+
37
+
43 static TemplateArgument createFromTemplateArgument(const clang::TemplateArgument* parm, clang::PrintingPolicy pp);
+
44
+
48 bool compare(const TemplateArgument& other) const;
+
49
+
50 inline bool operator==(const TemplateArgument& other) const { return this->compare(other); }
+
51};
+
+
52
+
53} // namespace Instantiator
+
+
54
+
55template <>
+
+
56class fmt::formatter<Instantiator::TemplateArgument>
+
57{
+
58public:
+
59 constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
+
60 template <typename Context>
+
+
61 constexpr auto format(Instantiator::TemplateArgument const& p, Context& ctx) const
+
62 {
+
63 return fmt::format_to(ctx.out(), "{}", p.is_dependent ? "dependent" : p.name());
+
64 }
+
+
65};
+
+
66
+
67#endif
+
constexpr auto format(Instantiator::TemplateArgument const &p, Context &ctx) const
+
constexpr auto parse(format_parse_context &ctx)
+ + + + + + +
Struct for the collection of all relevant data for a function parameter.
+
std::vector< std::string > names
+ +
static TemplateArgument createFromTemplateArgument(const clang::TemplateArgument *parm, clang::PrintingPolicy pp)
+
bool operator==(const TemplateArgument &other) const
+
std::string name(const std::string &sep=" ") const
+
bool compare(const TemplateArgument &other) const
+ +
+
+ + + + + + diff --git a/Template_8cpp.html b/Template_8cpp.html index 63dcce95..ef15d8d7 100644 --- a/Template_8cpp.html +++ b/Template_8cpp.html @@ -104,13 +104,17 @@
#include "Template.hpp"
+#include <cstddef>
+#include <llvm/Support/Casting.h>
#include "spdlog/spdlog.h"
+#include "clang/AST/DeclTemplate.h"
#include "Injection.hpp"
#include "Parsing.hpp"
+#include "TemplateArgument.hpp"
Include dependency graph for Template.cpp:
-
+

Go to the source code of this file.

@@ -127,7 +131,7 @@ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmt::formatter< Instantiator::TemplateArgument > Member List
+
+
+ +

This is the complete list of members for fmt::formatter< Instantiator::TemplateArgument >, including all inherited members.

+ + + +
format(Instantiator::TemplateArgument const &p, Context &ctx) constfmt::formatter< Instantiator::TemplateArgument >inline
parse(format_parse_context &ctx)fmt::formatter< Instantiator::TemplateArgument >inline
+
+ + + + + + diff --git a/classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html b/classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html new file mode 100644 index 00000000..86941b0b --- /dev/null +++ b/classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html @@ -0,0 +1,209 @@ + + + + + + + + +Instantiator: fmt::formatter< Instantiator::TemplateArgument > Class Reference + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
fmt::formatter< Instantiator::TemplateArgument > Class Reference
+
+
+ +

#include <TemplateArgument.hpp>

+ + + + + + + +

+Public Member Functions

constexpr auto parse (format_parse_context &ctx)
 
template<typename Context >
constexpr auto format (Instantiator::TemplateArgument const &p, Context &ctx) const
 
+

Detailed Description

+
+

Definition at line 56 of file TemplateArgument.hpp.

+

Member Function Documentation

+ +

◆ format()

+ +
+
+
+template<typename Context >
+ + + + + +
+ + + + + + + + + + + +
constexpr auto fmt::formatter< Instantiator::TemplateArgument >::format (Instantiator::TemplateArgument const & p,
Context & ctx ) const
+
+inlineconstexpr
+
+ +

Definition at line 61 of file TemplateArgument.hpp.

+ +
+
+ +

◆ parse()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr auto fmt::formatter< Instantiator::TemplateArgument >::parse (format_parse_context & ctx)
+
+inlineconstexpr
+
+ +

Definition at line 59 of file TemplateArgument.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + + + diff --git a/classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.js b/classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.js new file mode 100644 index 00000000..2c901bb6 --- /dev/null +++ b/classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.js @@ -0,0 +1,5 @@ +var classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4 = +[ + [ "format", "classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html#a95c6c638fc441fb450386d5ad7423ab9", null ], + [ "parse", "classfmt_1_1formatter_3_01Instantiator_1_1TemplateArgument_01_4.html#aa58bd95729305096bcb517710ca08091", null ] +]; \ No newline at end of file diff --git a/classfmt_1_1formatter_3_01Param_01_4-members.html b/classfmt_1_1formatter_3_01Param_01_4-members.html index 00618bf3..467ef677 100644 --- a/classfmt_1_1formatter_3_01Param_01_4-members.html +++ b/classfmt_1_1formatter_3_01Param_01_4-members.html @@ -112,7 +112,7 @@ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Instantiator Namespace Reference
+
+
+ + + + + +

+Classes

struct  TemplateArgument
 Struct for the collection of all relevant data for a function parameter. More...
 
+ + + +

+Enumerations

enum class  Kind { Type +, NonType +, Template +, Pack + }
 
+

Enumeration Type Documentation

+ +

◆ Kind

+ +
+
+ + + + + +
+ + + + +
enum class Instantiator::Kind
+
+strong
+
+ + + + + +
Enumerator
Type 
NonType 
Template 
Pack 
+ +

Definition at line 14 of file TemplateArgument.hpp.

+ +
+
+
+
+ + + + + + diff --git a/namespaceInstantiator.js b/namespaceInstantiator.js new file mode 100644 index 00000000..c5cb98b4 --- /dev/null +++ b/namespaceInstantiator.js @@ -0,0 +1,10 @@ +var namespaceInstantiator = +[ + [ "TemplateArgument", "structInstantiator_1_1TemplateArgument.html", "structInstantiator_1_1TemplateArgument" ], + [ "Kind", "namespaceInstantiator.html#ae23a90b61c96d22e834f3e85684a1cda", [ + [ "Type", "namespaceInstantiator.html#ae23a90b61c96d22e834f3e85684a1cdaaa1fa27779242b4902f7ae3bdd5c6d508", null ], + [ "NonType", "namespaceInstantiator.html#ae23a90b61c96d22e834f3e85684a1cdaa8627a9054b6f456c6e15d7a0d57a9030", null ], + [ "Template", "namespaceInstantiator.html#ae23a90b61c96d22e834f3e85684a1cdaa278c491bdd8a53618c149c4ac790da34", null ], + [ "Pack", "namespaceInstantiator.html#ae23a90b61c96d22e834f3e85684a1cdaa4492081ca02b059f9e8af4ddaf0f7292", null ] + ] ] +]; \ No newline at end of file diff --git a/namespaceclang.html b/namespaceclang.html index c5e4d3e7..37c862d7 100644 --- a/namespaceclang.html +++ b/namespaceclang.html @@ -108,7 +108,7 @@ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all namespace enums with links to the namespace documentation for each enum:
+
+
+ + + + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html index 7dcd0e2c..2d520154 100644 --- a/namespacemembers_func.html +++ b/namespacemembers_func.html @@ -109,7 +109,7 @@ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Instantiator::TemplateArgument Member List
+
+
+ +

This is the complete list of members for Instantiator::TemplateArgument, including all inherited members.

+ + + + + + + + +
compare(const TemplateArgument &other) constInstantiator::TemplateArgument
createFromTemplateArgument(const clang::TemplateArgument *parm, clang::PrintingPolicy pp)Instantiator::TemplateArgumentstatic
is_dependentInstantiator::TemplateArgument
kindInstantiator::TemplateArgument
name(const std::string &sep=" ") constInstantiator::TemplateArgument
namesInstantiator::TemplateArgument
operator==(const TemplateArgument &other) constInstantiator::TemplateArgumentinline
+
+ + + + + + diff --git a/structInstantiator_1_1TemplateArgument.html b/structInstantiator_1_1TemplateArgument.html new file mode 100644 index 00000000..9d68cdfd --- /dev/null +++ b/structInstantiator_1_1TemplateArgument.html @@ -0,0 +1,332 @@ + + + + + + + + +Instantiator: Instantiator::TemplateArgument Struct Reference + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Instantiator +
+
Generate c++ template instantiations
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Instantiator::TemplateArgument Struct Reference
+
+
+ +

Struct for the collection of all relevant data for a function parameter. + More...

+ +

#include <TemplateArgument.hpp>

+
+Collaboration diagram for Instantiator::TemplateArgument:
+
+
+
[legend]
+ + + + + + + + +

+Public Member Functions

std::string name (const std::string &sep=" ") const
 
bool compare (const TemplateArgument &other) const
 
bool operator== (const TemplateArgument &other) const
 
+ + + +

+Static Public Member Functions

static TemplateArgument createFromTemplateArgument (const clang::TemplateArgument *parm, clang::PrintingPolicy pp)
 
+ + + + + + + +

+Public Attributes

Kind kind {}
 
std::vector< std::string > names = {""}
 
bool is_dependent = false
 
+

Detailed Description

+

Struct for the collection of all relevant data for a function parameter.

+ +

Definition at line 25 of file TemplateArgument.hpp.

+

Member Function Documentation

+ +

◆ compare()

+ +
+
+ + + + + + + +
bool Instantiator::TemplateArgument::compare (const TemplateArgument & other) const
+
+

Compares if two parameters are the same.

+ +

Definition at line 87 of file TemplateArgument.cpp.

+ +
+
+ +

◆ createFromTemplateArgument()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
TemplateArgument Instantiator::TemplateArgument::createFromTemplateArgument (const clang::TemplateArgument * parm,
clang::PrintingPolicy pp )
+
+static
+
+

Load the parameter from a clang::ParmVarDecl.

Parameters
+ + + +
parmPointer to the clang::ParmVarDecl
ppclang::PrintingPolicy which controls how strings are created.
+
+
+ +

Definition at line 26 of file TemplateArgument.cpp.

+ +
+
+ +

◆ name()

+ +
+
+ + + + + + + +
std::string Instantiator::TemplateArgument::name (const std::string & sep = " ") const
+
+ +

Definition at line 13 of file TemplateArgument.cpp.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + +
bool Instantiator::TemplateArgument::operator== (const TemplateArgument & other) const
+
+inline
+
+ +

Definition at line 50 of file TemplateArgument.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ is_dependent

+ +
+
+ + + + +
bool Instantiator::TemplateArgument::is_dependent = false
+
+

Whether this template argument is dependent (not already resolved).

+ +

Definition at line 36 of file TemplateArgument.hpp.

+ +
+
+ +

◆ kind

+ +
+
+ + + + +
Kind Instantiator::TemplateArgument::kind {}
+
+

Kind of the template argument (Type, NonType, ...)

+ +

Definition at line 28 of file TemplateArgument.hpp.

+ +
+
+ +

◆ names

+ +
+
+ + + + +
std::vector<std::string> Instantiator::TemplateArgument::names = {""}
+
+

Name of the template argument

+ +

Definition at line 31 of file TemplateArgument.hpp.

+ +
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + + + diff --git a/structInstantiator_1_1TemplateArgument.js b/structInstantiator_1_1TemplateArgument.js new file mode 100644 index 00000000..3bb5077f --- /dev/null +++ b/structInstantiator_1_1TemplateArgument.js @@ -0,0 +1,10 @@ +var structInstantiator_1_1TemplateArgument = +[ + [ "compare", "structInstantiator_1_1TemplateArgument.html#adfb5c224df77c9bd69c4f9878a9b9cf7", null ], + [ "createFromTemplateArgument", "structInstantiator_1_1TemplateArgument.html#abacd57241d2994e448416f8119b99e94", null ], + [ "name", "structInstantiator_1_1TemplateArgument.html#ad5392858b90a4d98d4863ae7edb16dd1", null ], + [ "operator==", "structInstantiator_1_1TemplateArgument.html#ad2cb14b6bdb513a2d25b8ccc44af504e", null ], + [ "is_dependent", "structInstantiator_1_1TemplateArgument.html#ae4fecf46385851dc5d38556c645a3da3", null ], + [ "kind", "structInstantiator_1_1TemplateArgument.html#aa6a459e45f24d07092ed60a937a373b7", null ], + [ "names", "structInstantiator_1_1TemplateArgument.html#a368239c249267117cd169b39cb9ecbb9", null ] +]; \ No newline at end of file diff --git a/structInstantiator_1_1TemplateArgument__coll__graph.map b/structInstantiator_1_1TemplateArgument__coll__graph.map new file mode 100644 index 00000000..5e7c84c8 --- /dev/null +++ b/structInstantiator_1_1TemplateArgument__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/structInstantiator_1_1TemplateArgument__coll__graph.md5 b/structInstantiator_1_1TemplateArgument__coll__graph.md5 new file mode 100644 index 00000000..da685469 --- /dev/null +++ b/structInstantiator_1_1TemplateArgument__coll__graph.md5 @@ -0,0 +1 @@ +32a5c6ebc27e7deabef5b09a0735a9a6 \ No newline at end of file diff --git a/structInstantiator_1_1TemplateArgument__coll__graph.svg b/structInstantiator_1_1TemplateArgument__coll__graph.svg new file mode 100644 index 00000000..1c20f219 --- /dev/null +++ b/structInstantiator_1_1TemplateArgument__coll__graph.svg @@ -0,0 +1,78 @@ + + + + + + +Instantiator::TemplateArgument + + +Node1 + + +Instantiator::TemplateArgument + + + + + +Node2 + + +std::vector< std::string > + + + + + +Node2->Node1 + + + + + + names + + + +Node3 + + +std::string + + + + + +Node3->Node2 + + + + + + elements + + + +Node4 + + +std::basic_string< + Char > + + + + + +Node4->Node3 + + + + + + + + diff --git a/structParam-members.html b/structParam-members.html index 4f7626c2..958e5943 100644 --- a/structParam-members.html +++ b/structParam-members.html @@ -125,7 +125,7 @@