#include <bits/stdc++.h>
using namespace std;
class Rectangle {
int length;
int breadth;
public:
Rectangle(int l, int b) {
length = l;
breadth = b;
}
int area() { return length * breadth; }
};
int main() {
// Create shared_ptr Smart Pointer
shared_ptr<Rectangle> P1(new Rectangle(10, 5));
// Created a weak_ptr smart pointer
weak_ptr<Rectangle> P2 (P1);
cout << P1->area() << endl;
// Returns the number of shared_ptr
// objects that manage the object
cout << P1.use_count();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBSZWN0YW5nbGUgewogICAgaW50IGxlbmd0aDsKICAgIGludCBicmVhZHRoOwoKcHVibGljOgogICAgUmVjdGFuZ2xlKGludCBsLCBpbnQgYikgewogICAgICAgIGxlbmd0aCA9IGw7CiAgICAgICAgYnJlYWR0aCA9IGI7CiAgICB9CgogICAgaW50IGFyZWEoKSB7IHJldHVybiBsZW5ndGggKiBicmVhZHRoOyB9Cn07CgppbnQgbWFpbigpIHsKICAgIAogICAgLy8gQ3JlYXRlIHNoYXJlZF9wdHIgU21hcnQgUG9pbnRlcgogICAgc2hhcmVkX3B0cjxSZWN0YW5nbGU+IFAxKG5ldyBSZWN0YW5nbGUoMTAsIDUpKTsKICAgIAogICAgLy8gQ3JlYXRlZCBhIHdlYWtfcHRyIHNtYXJ0IHBvaW50ZXIKICAgIHdlYWtfcHRyPFJlY3RhbmdsZT4gUDIgKFAxKTsKICAgIGNvdXQgPDwgUDEtPmFyZWEoKSA8PCBlbmRsOwogICAgCiAgICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc2hhcmVkX3B0ciAKICAgIC8vIG9iamVjdHMgdGhhdCBtYW5hZ2UgdGhlIG9iamVjdAogICAgY291dCA8PCBQMS51c2VfY291bnQoKTsKICAgIHJldHVybiAwOwp9