diff --git a/.gitignore b/.gitignore index f64677d..98629db 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ i s - +t diff --git a/track.cpp b/track.cpp new file mode 100644 index 0000000..3af2fa3 --- /dev/null +++ b/track.cpp @@ -0,0 +1,30 @@ +#include +#include +class A { + long long counter = 0; + +public: + A() : counter{0} {} + A operator()() { + A ret = *this; + ret.counter++; + return ret; + } + A operator[](int dummy) { + A ret = *this; + ret.counter--; + return ret; + } + friend std::ostream &operator<<(std::ostream &lhs, A const &rhs) { + lhs << rhs.counter; + return lhs; + } +}; + +int main(void) { + A a; + std::cout << a[0] << std::endl; + std::cout << a[0]() << std::endl; + std::cout << a[0]()() << std::endl; + return 0; +}