Свободная таблица
компилятор
действие | Microsoft Visual C++ 6 | IntelC++ 8.0 | GCC 3.3.4 | ||||
выравнивание переходов | не выравнивает | не выравнивает | выравнивает по границе степени двойки | ||||
быстрое булево вычисление | поддерживает | поддерживает | поддерживает | ||||
удаление избыточных проверок | не удаляет | удаляет | не удаляет | ||||
удаление проверок нулевых указателей | не удаляет | не удаляет | удаляет | ||||
совмещение проверок | не совмещает | совмещает | не совмещает | ||||
сокращение длины маршрута | сокращает | сокращает | сокращает | ||||
уменьшение кол-ва ветвлений | уменьшает | уменьшает | уменьшает | ||||
сокращение количества сравнений | сокращает | частично сокращает | не сокращает | ||||
избавление от ветвлений | избавляется от ветвлений константного типа | никогда не избавляется | избавляется всегда, когда это возможно | ||||
балансировка логического древа | троичное дерево, сбалансированное улучшенным методом отрезков | двоичное, несбалансированное дерево | троичное дерево, сбалансированное методом отрезков | ||||
создание таблицы переходов | создает | создает | создает | ||||
поддержка разряженной таблицы переходов | поддерживает | поддерживает | поддерживает | ||||
совмещение таблицы переходов с деревом | совмещает | не совмещает | не совмещает |