Figyu, szinte bitre ugyanezt a kodot mar mas is mutatta, csak az itt a problema, hogy semmi nem garantalja neked, hogy a finally-ban az inputra nem hivatkozik mas. Es ezt (az en tudomasom szerint) nemigen tudod kideriteni, hogy a close() vegrehajthato-e? Amirol te gyozkodsz minket az egy egyszeru eset (mondjuk ugy, hogy "kizarolagos tulajdon").
Ennek a c++ analogiaja a kovetkezo:
void foo() {
std::ofstream res;
use_resource(res);
}
a scope zarasakor a stream bezarodik es a memoria felszabadul. De ez egy nagyon egyszeru problema. Nem errol megy a vita. Ha neked csak ilyenek jutott az eletben az tok kiraly, de sajnos vannak bonyolultabb szituaciok, amikre ez a pattern nem huzhato ra.