Std Future C ++

Std Future C ++

Hoje, vamos aprender sobre um dos arquivos de cabeçalho importantes da linguagem de programação C ++, que é a biblioteca "futura". Para evitar confusão ao aprender o conceito de arquivo de cabeçalho futuro, revisemos brevemente a linguagem C ++ antes de passar para o tópico principal. O significado dos arquivos de cabeçalho e a justificativa por trás de seu uso no idioma de codificação C ++ também serão discutidos.

A linguagem codificadora C é o antecessor de C++. Além disso, podemos afirmar que é uma forma aprimorada de C que se baseia no princípio da programação orientada a objetos (OOP). Ao escrever um programa na linguagem de programação C ++, usamos arquivos de cabeçalho padrão, classes, funções, etc. Estes nos salvam de ter que escrever inúmeras linhas de código. Usando algumas palavras -chave de reserva, simplesmente adicionamos o arquivo de cabeçalho.

Introdução

Nos programas C ++, devemos incluir pelo menos uma biblioteca que é a maioria dos programas C ++ que exigem os métodos CIN () e Cout () para que aceitemos dados do usuário e muitos outros códigos pré-escritos que tornam o código mais legível. Para acessar essas funções, você precisa ter um arquivo de cabeçalho. A biblioteca “Future” é usada para criar modelos de classe e modelos associados que facilitam a execução de um método que pode estar em um tópico diferente e recuperar seus resultados. O resultado é o número que o método retorna ou uma exceção que o método gera, mas não captura.

Para compreender melhor a abordagem futura do arquivo de cabeçalho, vamos examinar o pacote futuro para ver como essa biblioteca é usada e implementada na linguagem de programação C ++, além do que as funções associadas do futuro módulo são.

Sintaxe:

É assim que um arquivo de cabeçalho de um programa C ++ usando a tag "#include Future>" deve ser escrito. Vamos agora começar a compreender o estilo de implementação e escrita da Future Library. A diretiva pré -processadora da linguagem de programação C ++ é escrita da seguinte maneira. Ao se referir a eles como instruções de pré -processador, o pré -processador examina o programa para diretivas específicas que ele pode entender. Cada diretiva pré -processadora começa com o símbolo # (hash).

O pré-processador realiza primeiro ações preliminares, como executar implicitamente o código, incluindo arquivos relacionados ao programa, etc. Antes que o tradutor encontre o programa. Um futuro é uma representação dos resultados de uma operação assíncrona que ainda não poderia ser acessível. Depois que os cálculos terminarem, o futuro pode conter um valor ou pode mostrar um erro.

Exemplo:

Para entender o conceito de futuros arquivos de cabeçalho, implementaremos futuras bibliotecas e também discutiremos outras bibliotecas e funções que vamos usar. Agora criaremos um exemplo do futuro arquivo de cabeçalho na linguagem de programação C ++.

Para fazer isso, primeiro usamos uma versão C ++ 11 ou acima do compilador que suporta a futura biblioteca. A futura biblioteca não funcionará corretamente no compilador online se você não tiver o compilador C ++ 11 ou acima, portanto você deve instalá -lo. Comece a escrever o programa de exemplo que desejamos implementar depois de instalar e iniciar o compilador. Para garantir que as ações do programa, que significam classes, objetos, funções, etc., trabalham no programa corretamente, os arquivos de cabeçalho sempre devem ser incluídos nos programas C ++.

Os métodos que implementamos no programa não teriam funcionado sem os arquivos do cabeçalho. A WWE nem teria visto o resultado no painel de usuários. Quando incluiremos qualquer arquivo de cabeçalho, primeiro escrevemos o símbolo "#" que diz ao compilador que estamos adicionando a biblioteca ao programa existente. O nome do arquivo de cabeçalho que desejamos adicionar ao programa será escrito após a palavra -chave C ++ reservada "incluir", que é usada para incluir o arquivo de cabeçalho e, em seguida, escreveremos o nome da biblioteca "iostream".

O iostream significa que podemos obter a entrada do usuário usando o método CIN () e também podemos exibir os resultados usando o método cout (). Em seguida, adicionará outro arquivo de cabeçalho que é “#include no programa porque o arquivo de cabeçalho do thread contém definições para as classes de threads que implementaremos na função principal () e recursos associados.

Na linguagem de programação C ++, um único thread é representado pela classe Thread usando std :: thread. Agora, incluiremos mais um cabeçalho que é “#include biblioteca. Podemos usar esta biblioteca para vários propósitos do programa, como quando queremos apoiar a rosca no programa e também aguarda uma função assíncrona predeterminada que executa a função de forma assíncrona e fornece o futuro do valor da função.

#incluir
#incluir
#incluir
usando namespace std;

Além disso, adicionaremos mais uma afirmação "usando o namespace std", que é usado para especificar o escopo do programa. Simplesmente disse, isso nos restringe de declarar objetos, métodos e argumentos em todo o programa existente com referências ao mesmo escopo.

Em seguida, implementaremos uma função assíncrona global para obter o ID do piso. Primeiro, escreveremos o tipo de retorno da função que é um número inteiro. Em seguida, escreveremos o nome da função que declaramos ID "Asyncfunc". Então, nos colchetes de função, passamos o tipo de dados e a variável. Na função asyncfunc (), imprimimos o ID do thread usando o método cout (). Na linha 10, retornamos o valor à variável "Valor" que declaramos em suportes de função asyncfun ().

int assyncfunc (int valor)

cout << "Asynchronous Thread: " << this_thread::get_id() << endl;
retornar "o valor é:", valor + 200;

Em termos de escrever os trechos de código para o cenário que estamos implementando, chamaremos o método principal (). O tipo de retorno da função principal (), "int", será escrito primeiro, seguido pelo nome da função, que é a função principal () ao chamar a função. Em seguida, comece a criar o código abrindo os colchetes da função.

Na próxima linha, imprimiremos o ID principal do piso escrevendo "this_thread :: get_id ()" e passando para o método cout (). Em seguida, criaremos a classe futura escrevendo a palavra -chave reservada "Future" e passando o tipo inteiro e o nome da classe é "FUT". Em seguida, a função asyncfunc () retorna o objeto futuro. Então usamos a instrução IF para verificar se o futuro “FUT” é válido e se a condição for válida, imprimiremos o objeto futuro usando o método cout (). Então usamos a declaração if-else para verificar a validade do futuro. Se for válido, ele compilará o “FUT.declaração get () ”e se não for, ele imprimirá a mensagem“ Inválides.

int main ()

cout <<"Main Thread: "<< this_thread::get_id() << endl;
futuro futuro = assíncrono (lançamento :: async, assíncfunc, 400);
if (fut.válido())

cout << fut.get()<
if (fut.válido())

fut.pegar();

outro

cout<<"Invalid" <
retornar 0;

Para informar o compilador para parar de executar o programa e exibir a saída na tela, bem como para mostrar a tela de erro, se houver algum, retornaremos 0 ao método main () no final do programa.

Aqui está a saída do programa acima compilado:

Conclusão

Neste artigo, aprendemos sobre o futuro arquivo de cabeçalho. Aprendemos por que usamos arquivos de cabeçalho futuros e como os implementamos aprendendo a sintaxe do futuro. Implementamos um exemplo do futuro com uma explicação detalhada de todas as linhas de código para que a confusão seja deixada nas mentes dos usuários.