
#define assert(E)                                                             \
  if (!(E))                                                                   \
    return 1;

template <class T>
class zero_init
{
public:
  zero_init()
    : val(static_cast<T>(0))
  {
  }
  zero_init(T val)
    : val(val)
  {
  }
  operator T&() { return val; }
  operator T() const { return val; }
private:
  T val;
};

int someFunc()
{
  zero_init<int*> p;
  assert(p == 0);
  p = new int(7);
  assert(*p == 7);
  delete p;

  zero_init<int> i;
  assert(i == 0);
  i = 7;
  assert(i == 7);
  switch (i) {
  }

  int* vp = new int[i];

  return 0;
}
