ファイルパスを引数にして,コンストラクタで読んで…ってのは何も考えていないと結構やりがち.
しかし,これだけだとテスト書くのがつらい.
テストが実行される場所を気にしないといけないし,
例外どうするかってのもある.
istream&
を引数にしたやつがあると,単体テストに istringstream
が使える.
短いテストケースならソースに埋め込むことができて楽.
例外も,渡された時に exceptions
が設定されていれば投げるし,
終わった後に fail
や bad
を見ても良い.
例外 OK な場合も例外 NG な場合もたぶん救える*1.