Первое из:
Вы должны быть в состоянии использовать Boost и TR1 рядом. Если все настроено правильно и вы не возитесь с using namespace
, вы не получите никаких ошибок.
C ++ 11 предоставляет такие функции, как ключевое слово auto
( дополнительная информация ) или инициализация атрибутов класса во время их объявления ( дополнительная информация ), которые Повышение не может обеспечить.
С другой стороны Boost предоставляет намного больше, чем просто их реализация функций C ++ 11. По сути, Boost представляет собой набор библиотек, которые считаются добавленными в стандарт C ++.
Когда речь идет о функциях, которые оба предоставляют (например, shared_ptr ), я бы рекомендовал использовать Boost:
- Повышение компиляции с помощью компиляторов, которые не поддерживают определенные функции C ++ 11
- У вас есть четкая зависимость вместо простой передачи на C ++ 11 (которую большинство компиляторов реализуют по-разному)
- Типы данных Boost (например, shared_ptr) совместимы с другими функциями Boost, такими как serialization .
Мое предложение - использовать C ++ 11, только если он вам абсолютно необходим, и Boost во всех остальных случаях.