Skip to content

Commit 61c315d

Browse files
committed
C++: test for explicit template copy constructor
1 parent 6acf49d commit 61c315d

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

cpp/ql/test/library-tests/special_members/generated_copy/assign.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
| difference::Base | can | does NOT | have implicit copy assignment |
1212
| difference::OnlyAssign | can | does | have implicit copy assignment |
1313
| difference::OnlyCtor | can NOT | does NOT | have implicit copy assignment |
14+
| instantiated_explicit_ctor::Wrapper<int> | can | does | have implicit copy assignment |
1415
| moves::MoveAssign | can NOT | does NOT | have implicit copy assignment |
1516
| moves::MoveCtor | can NOT | does NOT | have implicit copy assignment |
1617
| private_cc::C | can | does NOT | have implicit copy assignment |

cpp/ql/test/library-tests/special_members/generated_copy/copy.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,21 @@ namespace difference {
131131
class OnlyAssign : Base {
132132
};
133133
}
134+
135+
namespace instantiated_explicit_ctor {
136+
template<class T>
137+
class Wrapper {
138+
public:
139+
Wrapper(Wrapper<T> &other) {
140+
m_t = other.m_t;
141+
}
142+
143+
Wrapper() {
144+
m_t = 0;
145+
}
146+
private:
147+
T m_t;
148+
};
149+
150+
Wrapper<int> wrapped_int;
151+
}

cpp/ql/test/library-tests/special_members/generated_copy/ctor.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
| difference::Base | can | does NOT | have implicit copy constructor |
1212
| difference::OnlyAssign | can NOT | does NOT | have implicit copy constructor |
1313
| difference::OnlyCtor | can | does | have implicit copy constructor |
14+
| instantiated_explicit_ctor::Wrapper<int> | can | does | have implicit copy constructor |
1415
| moves::MoveAssign | can NOT | does NOT | have implicit copy constructor |
1516
| moves::MoveCtor | can NOT | does NOT | have implicit copy constructor |
1617
| private_cc::C | can | does NOT | have implicit copy constructor |

cpp/ql/test/library-tests/special_members/generated_copy/functions.expected

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,9 @@
8686
| copy.cpp:131:9:131:9 | OnlyAssign | deleted | |
8787
| copy.cpp:131:9:131:9 | operator= | | |
8888
| copy.cpp:131:9:131:9 | operator= | | |
89+
| copy.cpp:137:9:137:9 | operator= | | |
90+
| copy.cpp:139:5:139:11 | Wrapper | | |
91+
| copy.cpp:143:5:143:5 | Wrapper | | |
92+
| copy.cpp:143:5:143:11 | Wrapper | | |
8993
| file://:0:0:0:0 | operator= | | |
9094
| file://:0:0:0:0 | operator= | | |

0 commit comments

Comments
 (0)