с использованием python 2.3 на ubuntu 10.04

Мне нужно запустить несколько старых программ на Python в системе ubuntu 10.04. похоже, что пакетов python 2.3 для ubuntu 10.04 нет. поэтому я получил python 2.3 прямо с python.org: http://www.python.org/download/releases/2.3/

, но "make" python не работает из-за переполнения буфера. class SquareMatrix: private SquareMatrixBase {public: SquareMatrix (): SquareMatrixBase (n, ...

Из Эффективного C ++ Скотта Мейерса:

template
class SquareMatrix: private SquareMatrixBase {

public:

    SquareMatrix( ) 
     : SquareMatrixBase(n, 0), 
       pData(new T[n*n]) 
    {
         this->setDataPtr(pData.get()); 
    } 

        ...
private:

    boost::scoped_array pData;
};

Независимо от того, где находятся данные хранится, ключевой результат от раздувания точка зрения такова, что сейчас многие - может быть, все - члена SquareMatrix функции могут быть простыми встроенными вызовами к версиям базового класса, которые являются общими со всеми другими матрицами, содержащими один и тот же тип данных, независимо от их размер. В то же время SquareMatrix объекты разного размера различные типы, поэтому даже если, например, SquareMatrix и SquareMatrix объекты используют те же функции-члены в SquareMatrixBase , нет шанс пройти SquareMatrix объект в функция, ожидающая SquareMatrix . Красиво, нет?

Красиво, да, но не бесплатно. Версии инверта с размерами матрицы встроенные в них, вероятно, генерировать лучший код, чем общий версия, где размер передается как параметр функции или хранится в объект. Например, в размерные версии, размеры будут константами времени компиляции, следовательно подходит для таких оптимизаций, как постоянное распространение, в том числе их складывается в сгенерированный инструкции как непосредственные операнды. Этого нельзя сделать в версия, не зависящая от размера.

В вышеприведенном описании в последнем абзаце упоминалось как «следовательно, подходящая для таких оптимизаций, как распространение констант, включая их сворачивание в

9
задан aceinthehole 8 February 2011 в 15:28
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: