Quais são as vantagens da utilização de bibliotecas impulsionar o C ++? [fechadas]

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

  •  02-07-2019
  •  | 
  •  

Pergunta

Então, eu estive lendo e parece que as bibliotecas de impulso se acostumar muito na prática (não na minha loja, embora). Por que é isso? eo que o torna tão maravilhoso?

Foi útil?

Solução

impulsionar é usado tão extensivamente porque:

  • É open-source e peer-reviewed.
  • Ele fornece um ampla gama de plataforma funcionalidade agnóstico que STL perdeu.
  • É um complemento para STL, em vez de uma substituição.
  • Muitos dos desenvolvedores de impulso estão no comitê padrão do C ++. Na verdade, muitas partes do impulso é considerado para ser incluído na próxima C ++ biblioteca padrão.
  • Está documentado bem.
  • permite a inclusão em projetos de código aberto e fechado de código-fonte.
  • As suas características não são normalmente dependentes uns dos outros para que você possa ligar apenas as partes que você necessita. [Comentário Luc Hermitte 's]

Outras dicas

A partir da home page:

"... um dos mais altamente considerados e habilmente concebido C ++ projetos de biblioteca do mundo." - Herb Sutter e Andrei Alexandrescu, C ++ Coding Standards

"Item 55: familiarizar com Boost." -. Scott Meyers, Effective C ++, 3ª Ed

"A solução óbvia para a maioria dos programadores é usar uma biblioteca que oferece uma elegante e eficiente plataforma independente para serviços necessários. Exemplos são IMPULSO ..." - Bjarne Stroustrup, abstracção, bibliotecas, e eficiência em C ++

Então, é uma série de bibliotecas utilizadas e aceitas, mas por que você precisa dele?

Se você precisar:

  • regex
  • vinculativo função
  • funções lambda
  • testes de unidade
  • ponteiros inteligentes
  • noncopyable, opcional
  • serialização
  • datas genéricos
  • sistema de arquivos portátil
  • buffers circulares
  • configuração utils
  • biblioteca de imagem genérica
  • TR1
  • tópicos
  • uBLAS

mais quando o código em C ++, ter um olhar para Aumento .

Porque eles adicionar muitas coisas que faltam para a biblioteca padrão, tanto assim alguns deles estão sendo incluídos na norma.

impulso pessoas não estão mentindo:

Por que uma organização uso impulso?

Em uma palavra, a produtividade. Uso de bibliotecas de alta qualidade como impulso velocidades iniciais de desenvolvimento, em resultados menor número de erros, reduz reinvenção-of-the-roda, e cortes custos de manutenção a longo prazo. E desde bibliotecas de impulso tendem a se tornar de normas jure fato ou de, muitos programadores já estão familiarizados com -los.

Dez das bibliotecas de impulso são incluído no C ++ padrão biblioteca de TR1, e assim estão programados para mais tarde pleno estandardização. Mais bibliotecas de impulso estão na calha para TR2. utilização bibliotecas de impulso dá uma organização um avanço na adoção de nova tecnologias.

Muitos organização já programas de uso implementado com Boost, como o Adobe Acrobat Reader 7.0.

A aulas poucos impulso são muito úteis (shared_ptr), mas acho que eles foram um pouco castanhas com traços e conceitos em Boost. tempos de compilação e tamanhos enormes binários são completamente insano com Boost, como é o caso com qualquer código de template-pesado. Tem que haver um equilíbrio. Não estou certo se Impulso tem encontrado.

Acrescenta bibliotecas que permitem uma abordagem mais moderna de programação C ++.

Na minha experiência, muitos programadores C ++ são realmente o início de 1990 C ++ programadores, praticamente escrita classes C ++, não um monte de utilização de medicamentos genéricos. Os mais modernos abordagem usa os genéricos para software compor juntos em isso é maneira mais como linguagens dinâmicas, mas você ainda obter a verificação de tipo / performance no final. É um pouco feio de se olhar. Mas uma vez que você começa sobre as questões de sintaxe é realmente muito bom. Impulso dá-lhe um monte das ferramentas necessárias para o material compor facilmente. ponteiros inteligentes, funções, lambdas, ligações, etc. Depois, há bibliotecas de impulso que exploram essa nova maneira de escrever C ++ para fornecer coisas como a rede, regex, etc etc ...

Se você está escrevendo um monte de loops, ou a mão rolando objetos de função, ou fazer o gerenciamento de memória, então você definitivamente deve verificar impulsionar fora.

IMPULSO é uma coleção de bibliotecas preenchendo necessidades comuns a muitos projetos C ++. Geralmente, eles fazem correção priorizar, reutilização, portabilidade, desempenho de tempo de execução, e espaço-eficiência ao longo legibilidade do código de implementação impulso, ou vezes, por vezes, de compilação. Eles tendem a não cobrir as necessidades de alto nível completo funcionais (por exemplo, estruturas de aplicativos) e, em vez (felizmente) oferecem blocos de construção que podem ser combinados mais livremente sem ditar ou dominar o design do aplicativo.

As razões importantes a considerar usando o impulso incluem:

  • a maioria das bibliotecas são muito bem testados e projetados: eles geralmente obter uma revisão razoavelmente som por alguns excelentes programadores, em comparação com por pessoas com soluções caseiras bebida no mesmo espaço do problema, e amplamente utilizado suficiente para reunir extensa de feedback do mundo real
  • já está escrita e sua solução não é provavelmente
  • é muito portátil (mas isso varia por biblioteca)
  • mais pessoas no C ++ comunidade terá uma vantagem inicial em ajudá-lo com o seu código
  • REFORÇO é muitas vezes um campo de provas para introdução ao padrão C ++, assim você terá menos trabalho a fazer em reescrever seu código para ser compatível com futuras normas sans BOOST
  • devido à demanda da comunidade, fornecedores do compilador são mais propensos a teste e reagir a questões de correção com o uso BOOST
  • familiaridade com bibliotecas de impulso vai ajudá-lo a fazer um trabalho semelhante em outros projetos, possivelmente em outras empresas, onde qualquer código que você pode escrever agora pode não estar disponível para reutilização

As bibliotecas são descritos em uma ou duas linhas aqui: http://www.boost.org/ doc / libs / .

Como a biblioteca C ++ padrão não é tudo o que completo .

Qualquer coisa com Kevlin Henney 's envolvimento deve ser tomado nota.

Aumento basicamente o resumo do que o padrão vai se tornar, além de com toda a revisão por pares e uso esse impulso faz com que você pode ter certeza que seu ficando bastante um bom negócio para as suas dependências.

No entanto a maioria das lojas não use Boost, porque a sua dependência externa. E, na realidade reduzindo dependências externas é muito importante também.

Boost é a C ++ ou menos como .NET Framework é a C #, mas talvez em uma escala menor.

Eu uso a biblioteca de sistema de arquivos parar um pouco, e o boost :: shared_ptr é muito bacana. Eu ouço ele faz outras coisas também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top