Boost

Boost é um conjunto de bibliotecas para a linguagem C++. Seu objetivo é fornecer um conjunto de bibliotecas úteis para uma grande variedade de aplicações. Ela traz em si abstrações de sistemas operacionais, como as de arquivo e threads, bibliotecas gerais como a de pointeiros inteligentes (smart pointers) e bibliotecas de um domínio de aplicação específico, como as de álgebra linear.

Bibliotecas Boost

A Boost tem inúmeras bibliotecas, que são utilizáveis para diversos tipos de aplicações. Algumas delas, como a de thread e a de smart pointers foram incorporadas com modificações ao padrão C++.

Segue algumas das principais bibliotecas, sua utilidade e como usá-las.

Boost Thread

TO DO

Smart Pointers

UniquePtr

Ponteiro que não admite mais de um dono para o mesmo endereço de memória

SharedPtr

Cabeçalho onde se encontra: boost/shared_ptr.hpp
Ponteiro com contagem de referência. Quando chega a 0 ele é automaticamente destruído
Para todos os efeitos um shared_ptr irá se comportar como o seu ponteiro original, sendo que ao se fazer uma operação sobre o shared_ptr a operação
e realizada como se fosse feita sob o ponteiro original.
O ponteiro original de um shared_ptr pode ser acessado com o método get do shared_ptr.

O exemplo de código mostra as característuicas mais comuns de um shared_ptr

#include <iostream>
#include "boost/shared_ptr.hpp";
 
struct Teste{
    ~Teste(){
        std::cout << "Destruido Teste";
    }
};
 
int main( int argc, char ** argv ){
    int *x = new int(4);
 
    boost::shared_ptr<int> ptr( x );
    *ptr *= 3;
 
    std::cout << "Endereço de memória de x é igual a " << ptr.get() << " <==> " << x << std::endl;
    std::cout << "valor do conteúdo do ponteiro de x é igual a " << *ptr << std::endl;
 
    Teste *pTeste = new Teste();
 
    boost::shared_ptr<Teste> t( pTeste );
    boost::shared_( pTeste )ptr<Teste> t2 = t;
 
    return 0;
}

WeakPtr

TO DO

FileSystem

TO DO

Lock

+++ScopedLock

Trava (mutex) válida para o escopo atual em que o programador está e em eventuais escopos internos

Links

http://www.boost.org/: Site oficial da biblioteca

c++
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.