#include class X { private: const char* name; public: X(const char* name) : name(name) { std::cout << "X \"" << name << "\" constructed" << std::endl; } ~X() { std::cout << "X \"" << name << "\" destructed" << std::endl; } }; void foo(int selector) { if (selector) { static X x1 = "x1 within foo"; } static X x2 = "x2 within foo"; } int main() { std::cout << "main starts" << std::endl; int selector; if (std::cin >> selector) { foo(selector); foo(1); } std::cout << "main ends" << std::endl; }