たまたま見つけた。

http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
Bjarne StroustrupC++の作者)自らが語ったとされる、怪文書。なんとなく、ニセモノ臭いけど。
辛らつな内容だが、なかなか論点は面白い。
継承の否定だったり、(現在は実装の継承は避けるべき、と言われてるし)
typedefの否定だったり、(アレは確かに腹が立つときがある、上限値がパッとわからんのだよな)
演算子オーバーロードがダメとか(個人的にはこれとfriendは極力使うことを避けている)
特に琴線に触ったのがこのくだり。


もうずっと new を使っているものだから、malloc をどう使っていいかわからないし、戻り値もチェックしないんだ。ほとんどの C++ プログラマは戻り値を捨ててしまうんだよ。昔懐かしい -1はどこへ行ったんだろうね。少なくともエラーが発生したことはわかったし、throw だの catch だの try だのに悩むこともなかったんだ。
確かに次のような処理を書くときにちょっと考える。

getConnection(user,pass)という処理が失敗したときの処理の書き方
// C風の書き方
if(getConnection(user,pass) == -1){
// 失敗したときの処理
}
// C++風の書き方
try{
getConnection(user,pass); // こいつがthrowする
}catch(domain_error e){
e.what(); // エラーの中身
// 失敗したときの処理
}
結局そのときの気分次第というか、まぁ、プログラマ判断になるんだが、、
あまりこの話とは関係ないけど、昔、JavaC++のソースを並行して開発してたときに、C++でfinallyをつけててコンパイルできなくて悩んだことを思い出した。