// Example 2-2: Names in inner scopes can hide names in outer scopes.
#include <iostream>
#include <ostream>

int main()
{
  for (int i = 0; i < 100; ++i)
  {
    int x = 42;
    if (x < i)
    {
      double x = 3.14;
      std::cout << x; // prints 3.14
    }
    std::cout << x;   // prints 42
  }
  std::cout << x;     // Error: no x declared in this scope
}
