[devel] Re: alternatives

Stanislav Ievlev =?iso-8859-1?q?inger_=CE=C1_altlinux=2Eorg?=
Вт Апр 1 11:44:34 MSD 2003


> > > > синтаксис? :)
> > > Более удобно -- это там, где опасным и неинтуитивным образом
> > > переопределяются операторы непонятно для чего? ;)
> > Конкретный пример можно? Оператор [] у std::map переопределён
> > неинтуитивно?
> 
> Класс Ing::FileSystem переопределяет * и ++ явно в целях
> конспирации. Правильный operator++ должен возвращать отнюдь не bool.
Ну это бабушка надвое сказала, нигде не определены жесткие правила перегрузки
опрераторов, другое дело, что это может быть общепринято.
> Кстати, если уж переопределять ++, принято ещё и постфиксную форму
> предоставлять.
> Непонятно, почему вообще немудрёный итератор
> по файловым деревьям назван FileSystem.
> И почему у него семантика линейного итератора. Мне известны
> как минимум два способа обхода дерева, см параметры утилиты
> file. Файловые ссылки добавляют неопределённости.
> Негибкий этот класс и в других отношениях: всегда делает fstat,
> нужно это или нет (тем более что fts_* вроде бы предоставляют
> и эти данные). В-общем, я не увидел здесь _полезного_
> использования C++.
fts-то конечно предоставляет fstat, но типичный TOCTOU race остается. Если Вы
внимательно посмотрели, то там вся фишка не столько в fstat, сколько в
open.

А вот мысль по поводу интерфейса мне показалась разумной. Наверное лучше
сделать его больше похожим на поток, так будет ближе к сути ... да и к fts
тоже. Михаил, как считаете?

--
С наилучшими пожеланиями
Станислав Иевлев.




Подробная информация о списке рассылки Devel