Googler here. We avoid doing "work" in constructors as per
the style guide: http://google-styleguide.googlecode.com/svn/trunk/cppguide.x...
Yeah, that's pretty much what you have to do, and go back to a C-style init method. But then you've lost the benefits of RAII, and you can't necessarily use those types with templates (which won't know about your init method).
The point is that these features are infectious. If you don't want to throw exceptions, how do you handle a failure in a constructor? And then if you abandon constructors, other C++ features are unusable without them. And so on.