File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -71,12 +71,15 @@ struct ContainerInfo {
71
71
codegen(std::move(codegen_)) {
72
72
}
73
73
74
- ContainerInfo (const ContainerInfo&) = delete;
75
- ContainerInfo& operator =(const ContainerInfo& other) = delete ;
76
-
77
74
ContainerInfo (ContainerInfo&&) = default;
78
75
ContainerInfo& operator =(ContainerInfo&&) = default ;
79
76
77
+ // Explicit interface for copying
78
+ ContainerInfo clone () const {
79
+ ContainerInfo copy{*this };
80
+ return copy;
81
+ }
82
+
80
83
std::string typeName;
81
84
std::regex matcher;
82
85
std::optional<size_t > numTemplateParams;
@@ -89,6 +92,7 @@ struct ContainerInfo {
89
92
// adapter
90
93
std::optional<size_t > underlyingContainerIndex{};
91
94
std::vector<size_t > stubTemplateParams{};
95
+ bool captureKeys = false ;
92
96
93
97
Codegen codegen;
94
98
@@ -98,6 +102,10 @@ struct ContainerInfo {
98
102
bool operator <(const ContainerInfo& rhs) const {
99
103
return (typeName < rhs.typeName );
100
104
}
105
+
106
+ private:
107
+ ContainerInfo (const ContainerInfo&) = default ;
108
+ ContainerInfo& operator =(const ContainerInfo& other) = default ;
101
109
};
102
110
103
111
class ContainerInfoError : public std ::runtime_error {
You can’t perform that action at this time.
0 commit comments