Use empty constructor to construct empty shared_ptr.

At least for g++-4.4. shared_ptr does not have a constructor
taking an integer and therefore compilation fails. Therefore we
resort statements to construct empty pointers, like
```parser_(0)```
to using the empty constructor:
```parser_()```

This patch closes #533
Merge pull request #534 from blattms/fixes-issue-533

Use empty constructor to construct empty shared_ptr.