#include <iostream>

struct Counter{
    Counter():v(++i){ std::cout << "ctor:" << v << std::endl; }
    ~Counter(){ std::cout << "dtor:" << v << std::endl; }
    Counter f() const { return Counter(); }
    const int v;
    static int i;
};
int Counter::i=0;

int main(void){
    Counter c;
    c.f().f().f().f().f();
    return 0;
}