что произойдет с перекрывающейся частью boost, когда C++0x станет мейнстримом?

StackOverflow https://stackoverflow.com/questions/405175

  •  03-07-2019
  •  | 
  •  

Вопрос

что произойдет с перекрывающейся частью 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top