Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cassert>
- #include <string>
- template <typename X>
- bool IsSameObject(X& value1, X& value2) {
- return &value1 == &value2;
- }
- int main() {
- using namespace std;
- const int x = 1;
- const int y = 1;
- assert(!IsSameObject(x, y));
- assert(IsSameObject(x, x));
- const string name1 = "Harry"s;
- const string name1_copy = name1;
- const string name2 = "Ronald"s;
- auto name1_ptr = &name1;
- const string& name1_ref = name1;
- assert(!IsSameObject(name1, name2));
- assert(!IsSameObject(name1, name1_copy));
- assert(IsSameObject(name1, name1));
- assert(IsSameObject(name2, name2));
- assert(IsSameObject(name1_copy, name1_copy));
- assert(IsSameObject(*name1_ptr, name1));
- assert(IsSameObject(name1_ref, name1));
- assert(IsSameObject(name1_ref, *name1_ptr));
- }
Advertisement
Add Comment
Please, Sign In to add comment