Когда-то станет частью стандарта - библиотека Boost потеряет свое пространство имен Boost и будет перенесена в стандартную версию? - PullRequest
7 голосов
/ 20 ноября 2010

Как только библиотека Boost (я читал, что десять библиотек Boost считаются частью стандартной библиотеки) становится частью стандартной библиотеки - она ​​сохранит свое пространство имен boost или код окажется в std Пространство имен?

Если последнее так - как бы вы обошли это потенциальное столкновение пространства имен в вашем коде.

Приветствие.

1 Ответ

11 голосов
/ 20 ноября 2010

Элементы из библиотек Boost, которые сделали его стандартным, будут, конечно, включены в пространство имен std.Однако я не думаю, что их аналог Boost изменится каким-либо образом: если мы возьмем пример bind, люди, компилирующие C ++ 0x, будут использовать std::bind, тогда как люди, компилирующие C ++ 03, будут продолжать использовать boost::bind.

Возможно, я ошибаюсь, но, насколько я понимаю, именно стандарт * из расширенных библиотек сделал его стандартным, а не точные спецификации .Насколько я знаю, boost::bind вполне может продолжать развиваться и обеспечить что-то отличное от std::bind в какой-то момент (черт, я еще не читал стандарт C ++ 0x, поэтому у меня нет ответа, ноstd::bind может уже отличаться от boost::bind!).

Здесь нет проблем с конфликтом пространства имен: каждая библиотека находится в своем собственном пространстве имен, и вы вполне можете использовать std::bind и boost::bindв том же проекте C ++ 0x.

...