Na verdade, não acho que as bibliotecas de impulso se tornem legadas.
Sim, você deve ser capaz de usar std::type_traits
, regex
, shared_ptr
, unique_ptr
, tuple<>
, std::tie
, std::begin
em vez de Typetraits reforço / Utility, Boost ponteiro inteligente, Boost Tuple, bibliotecas Boost Gama, mas não deve, na prática, há real necessidade de 'switch', a menos que você está se movendo mais seu código para c ++ 11.
Além disso, na minha experiência, as std
versões da maioria delas são um pouco menos úteis. Por exemplo, AFAICT, o padrão não possui
- Expressões regulares do Perl5
- call_traits
- Certos membros da interface regex (como
bool boost::basic_regex<>::empty()
) e outras diferenças de interface
- isso morde mais, já que a interface do Boost é exatamente compatível com o Boost Xpressive
- e funciona muito mais bem com os algoritmos Boost String Obviamente, os últimos ainda não possuem contrapartes padrão (ainda?)
- Muitas coisas relacionadas ao TMP (Boost Fusion)
Preguiçosos, lambdas baseados em modelos de expressão; eles têm benefícios inevitáveis, pois podem ser polimórficos hoje , em oposição ao C ++ 11. Portanto, eles geralmente podem ser mais sucintos:
std::vector<int> v = {1,2,-9,3};
for (auto i : v | filtered(_arg1 >=0))
std::cout << i << "\n";
// or:
boost::for_each(v, std::cout << _arg1);
Definitivamente, isso ainda tem algum apelo sobre lambdas C ++ 11 (com tipos de retorno à direita, captura explícita e parâmetros declarados).
Além disso, há um papel GRANDE para o Boost, precisamente para facilitar a migração de caminho do C ++ 03 para o C ++ 11 e integrar as bases de código C ++ 11 e C ++ 03. Estou pensando particularmente em
- Aumentar Automático (BOOST_AUTO)
- Utilitário Boost (
boost::result_of<>
e relacionado)
- Aumentar o Foreach (BOOST_FOREACH)
- Não se esqueça: Boost Move - que permite escrever classes com semântica de movimento com uma sintaxe que será compilada igualmente bem em compiladores C ++ 03 com os compiladores Boost 1_48 + e C ++ 11.
Apenas meus $ 0,02