So I have following code:
struct obj {
  static int c;
  int myc;
  obj() : myc(c++) {
    std::cout << "ctor of " << myc << '\n';
  }
  obj(const obj&) : myc(c++){
    std::cout << "copy ctor of " << myc << '\n';
  }
  ~obj() {
    std::cout << "dtor of " << myc << '\n';
  }
};
int obj::c = 1;
int main(int argc, char** argv)
{
  obj x = obj();
}
The output is:
ctor of 1
dtor of 1
However when I set the copy constructor to private my code fails. Can You explain me please why I never see the std::cout from copy constructor?
