что произойдет с перекрывающейся частью boost, когда C++0x станет мейнстримом?
Вопрос
что произойдет с перекрывающейся частью boost, когда C++0x станет мейнстримом?
Будет ли boost по-прежнему содержать все, что было раньше, или они адаптируют библиотеку для обновления ее новым std::вещи?
Будет ли у boost как обычная версия C++, так и версия C++0x, которую они будут поддерживать?
Решение
Можно было бы надеяться что Boost продолжает поддерживать существующие классы по нескольким причинам.
Во-первых, существует фрагмент кода, использующий перекрывающиеся функции Boost, который необходимо поддерживать в течение некоторого времени.
Во-вторых, перекрывающиеся реализации позволяют мне выбирать, какую из них я предпочитаю использовать.Между std::Frob и Boost::Frob может быть некоторая разница, которая важна для моего проекта, и наличие выбора - это хорошо.
Однако в долгосрочной перспективе я ожидаю перехода к стандарту как со стороны авторов приложений, так и со стороны поставщиков инструментов.Это делает менее рискованным выбор использования std::.
Другие советы
Я не связан с Boost и понятия не имею, что они будут делать, но похоже, что Boost останется нетронутым.
Уже был выпущен TR1 (пакет функций VS 2008), а Boost остался нетронутым.Поскольку многие пользователи еще не внедрили Boost или TR1, я прогнозирую, что в течение как минимум следующих пяти лет библиотеки boost и c++0x будут существовать в разных пространствах имен и будут доступны как пользователям C++0x, так и пользователям C++.
Пространства имен делают это не проблемой для разработчиков Boost.Между библиотеками повышения и стандартными библиотеками нет прямого конфликта, поскольку они существуют в разных пространствах имен.Таким образом, изменения в пространстве имен std (например, добавление std::tr1) не оказывают прямого влияния на Boost.
Однако обратите внимание: если вы импортируете обе библиотеки (std и boost) в глобальное пространство имен, у вас возникнут проблемы.
Следующая цитата из документации Boost TR1 также проливает некоторый свет на реализацию компонентов TR1 в Boost, предполагая, что соответствующая библиотека Boost будет поддерживаться в обозримом будущем:
Библиотека TR1 предоставляет внедрение технического отчета C ++ о стандартных расширениях библиотеки.Эта библиотека сама по себе не реализует компоненты TR1, скорее, это тонкая обертка, которая будет включать в себя реализацию вашей стандартной библиотеки TR1 (если она есть), в противном случае она будет включать эквиваленты библиотеки Boost и импортировать их в пространство имен Std :: TR1.
Вы имеете в виду тр1?
Boost уже поддерживает tr1.Все классы из boost, которые были приняты в std::tr1, доступны в этом пространстве имен из boost.См. следующую документацию.
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_tr1.html