суббота, 11 апреля 2009 г.

На будущее:

Копался тут в исходниках OpenSceneGraph (не путать с OpenSG) и нашёл пару интересных вещей. С этого момента (11.04.2009) решил добавлять в этот список просто полезные, в программировании на с++, вещи. Полезные вещи:
  1. Ключевое в c++ слово mutable для членов класса. Читать зачем оно нужно здесь;
  2. Использование для членов класса вместо Foo * foo, конструкции вида ref_prt<foo> foo;
  3. Ключевое в c++ слово explicit для конструкторов, чтобы запретить неявные преобразования типов. Подробнее тут;
  4. Технология в c++ placement new. Читать про использование здесь (использование в менеджере памяти), здесь, здесь (использование для буферов) и у Скотта Мейерса (Наиболее эффективное использование с++).
з.ы. буду добавлять по мере нахождения еще чего-нить интересного и полезного.
з.з.ы. пост будет подниматься повыше, чтобы быть на виду

4 комментария:

  1. ref_ptr статитический объект на стеке,а внутри себя хранит указатель на объект? По моему нам про него даже рассказывали на парах :)

    ОтветитьУдалить
  2. DimaD, я тоже сначала так подумал, а оказалось, что это что-то наподобие STLSoft'овской реализации ref_ptr, основанной на подсчёте ссылок. Только вот в дополнение к подсчёту ссылок есть ещё такая штука, как DeleteHandler. То есть, если необходимо удалить объект не сразу, то указатель на него передается DeleteHander'у, который добавляет объекты в список на удаление и удаляет их каждые n фреймов.
    Ещё не до конца понял зачем это нужно, потому что нет такой штуки, как "вернуть объект". Принцип: вместо того, чтобы делать delete, мы помечаем объект как удаленный, а затем, если нам понадобился объект такого же типа, мы вместо new получаем указатель на "удаленный" объект и снимаем у него флаг удаленный.

    ОтветитьУдалить
  3. Оптимизируют повсюду? В вебките есть супер оптимизация на хранение строк. У них все строки в программе хранятся в единственном экземляре, а там, где они одинаковы, просто указатели. Чтобы дерево разбора меньше памяти ело

    ОтветитьУдалить
  4. Про строки и их оптимизацию хорошо написал IronPeter вот тут, пост №7.

    ОтветитьУдалить