Феникс теперь имеет ленивый список реализации, которая очень похожа, но не идентична реализации, предоставленной FC++. Это обеспечивает набор объектов, определенных списком , например, это определяет пустой список типа int.
list<int> example;
Список может содержать ноль или более элементов одного типа. Он также может быть объявлен с использованием функции, возвращающей значения правильного типа. Такие списки оцениваются только по требованию. Определен набор функций, которые позволяют много способов манипулирования и использования списков. Приводятся примеры имеющихся возможностей.
Исключения предоставляются для борьбы с определенными случаями, и они могут быть выключены, если хотите. Существует проверка максимальной длины списка, которая имеет по умолчанию 1000, который может быть изменен пользователем.
Это расширение Boost Phoenix, которое не меняет публичный интерфейс, за исключением определения новых функций в пространстве имен
boost::phoenix
Он должен быть прямо включен с использованием заголовка
boost/phoenix/function/lazy_prelude.hpp
Boost Phoenix предоставляет множество функций функционального_программирования. Одна из вещей, которая до сих пор отсутствовала, это ленивая реализация списка. Один доступен в библиотеке FC++, которая, хотя и не является частью Boost, имеет много общего. Можно было заново реализовать стратегию FC++ List Implementation using the facilties in Phoenix. Это дает то, что до сих пор не было доступно нигде в Фениксе и, вероятно, нигде в Boost. Эта новая реализация очень хорошо интегрирована с другими функциями в Фениксе, поскольку она использует тот же механизм. В свою очередь, это хорошо интегрировано с функцией Boost.
Существует много материала в FC++ и не предлагается воспроизводить все это. Многое изменилось с тех пор, как был написан FC++, и многие вещи уже доступны в Фениксе или в другом месте. Акцент здесь заключается в том, чтобы добавить в Феникс способ, который облегчит реализацию функционального_программирования.
Достигнут прогресс в реализации как основного списка, так и функций, необходимых для манипулирования списками.