STD Future C ++

STD Future C ++

Hoy, vamos a aprender sobre uno de los archivos de encabezado importantes del lenguaje de programación C ++, que es la biblioteca "Future". Para evitar confusiones al aprender el concepto del archivo de encabezado futuro, revisemos brevemente el idioma C ++ antes de pasar al tema principal. También se discutirá la importancia de los archivos de encabezado y la justificación detrás de su uso en el lenguaje de codificación C ++.

El lenguaje de codificación C es el predecesor de C++. Además, podríamos indicar que es una forma mejorada de C que se basa en el principio de la programación orientada a objetos (OOP). Al escribir un programa en el lenguaje de programación C ++, utilizamos archivos de encabezado estándar, clases, funciones, etc. Estos nos guardan de tener que escribir numerosas líneas de código. Usando algunas palabras clave de reserva, simplemente agregamos el archivo de encabezado.

Introducción

En los programas C ++, debemos incluir al menos una biblioteca que sea la mayoría de los programas de C ++ que requieren los métodos CIN () y Cout () para que aceptemos datos del usuario y muchos otros códigos preescritos que hacen que el código sea más legible. Para acceder a estas funciones, debe tener un archivo de encabezado. La biblioteca "Future" se utiliza para crear plantillas de clase y plantillas asociadas que faciliten la ejecución de un método que pueda haber estado en un hilo diferente y recuperar sus resultados. El resultado es el número que devuelve el método o una excepción que genera el método pero no atrapa.

Para comprender mejor el enfoque de archivo de encabezado futuro, examinemos el paquete futuro para ver cómo se usa e implementando esta biblioteca en el lenguaje de programación C ++, además de cuáles son las funciones asociadas del módulo futuro.

Sintaxis:

Así es como se debe escribir el archivo de encabezado de un programa C ++ utilizando la etiqueta "#include futuro>". Comencemos ahora a comprender el estilo de implementación y escritura de la Future Biblioteca. La directiva del preprocesador "#include" del lenguaje de programación C ++ está escrita de la siguiente manera. Al referirse a ellas como instrucciones del preprocesador, el preprocesador examina el programa de directivas específicas que puede entender. Cada Directiva del preprocesador comienza con el símbolo # (hash).

El preprocesador primero realiza acciones preliminares como la ejecución implícita del código, incluidos los archivos relacionados con el programa, etc. Antes de que el traductor incluso encuentre el programa. Un futuro es una representación de los resultados de una operación asincrónica a la que aún no podría ser accesible. Una vez que los cálculos están terminados, el futuro puede contener un valor o puede mostrar un error.

Ejemplo:

Para comprender el concepto de archivos de encabezado futuros, implementaremos bibliotecas futuras y también discutiremos algunas otras bibliotecas y funciones que vamos a usar. Ahora crearemos un ejemplo del archivo de encabezado futuro en el lenguaje de programación C ++.

Para hacerlo, primero usamos una versión C ++ 11 o superior del compilador que admite la futura biblioteca. La biblioteca futura no funcionará correctamente en el compilador en línea si no tiene el compilador C ++ 11 o superior, por lo que debe instalarlo. Comience a escribir el programa de ejemplo que deseamos implementar después de instalar e iniciar el compilador. Para garantizar que las acciones del programa, que significan clases, objetos, funciones, etc., funcionen correctamente en el programa, los archivos de encabezado siempre deben incluirse en los programas C ++.

Los métodos que implementamos en el programa no habrían funcionado sin los archivos de encabezado. WWE ni siquiera habría visto el resultado en el panel de usuario. Cuando incluiremos cualquier archivo de encabezado, primero escribimos el símbolo "#" que le dice al compilador que estamos agregando la biblioteca al programa existente. El nombre del archivo de encabezado que deseamos agregar al programa se escribirá después de la palabra clave C ++ reservada "incluir", que se utiliza para incluir el archivo de encabezado, y a continuación, escribiremos el nombre de la biblioteca "iOStream".

El iOStream significa que podemos obtener la entrada del usuario utilizando el método Cin () y también podemos mostrar los resultados utilizando el método Cout (). Luego, agregará otro archivo de encabezado que es "#Clude en el programa porque el archivo de encabezado de hilo contiene definiciones para las clases de subprocesos que implementaremos en la función Main () y las características asociadas.

En el lenguaje de programación C ++, la clase de hilo representa un solo hilo usando std :: hilo. Ahora, incluiremos un encabezado más que es "#Clude Library. Podemos usar esta biblioteca para múltiples propósitos del programa, como cuando queremos admitir el subproceso en el programa y también espera una función predeterminada asincrónicamente que ejecuta la función de manera asincrónica y le da el futuro al valor de la función.

#incluir
#incluir
#incluir
usando el espacio de nombres STD;

Además, agregaremos una declaración más "Uso de Namespace STD", que se utiliza para especificar el alcance del programa. Simplemente dicho, nos restringe de declarar objetos, métodos y argumentos en todo el programa existente con referencias al mismo alcance.

A continuación, implementaremos una función asincrónica global para obtener la identificación de la banda de rodadura. Primero, escribiremos el tipo de retorno de la función que es un entero. Luego, escribiremos el nombre de la función que hemos declarado ID "AsyncFunc". Luego, en los soportes de la función, hemos pasado el tipo de datos y la variable. En la función asyncfunc (), hemos impreso la ID del hilo utilizando el método cout (). En la línea 10, hemos devuelto el valor al "valor" variable que hemos declarado en los soportes de la función asyncfun ().

int asyncFunc (int value)

cout << "Asynchronous Thread: " << this_thread::get_id() << endl;
devolver "El valor es:", valor + 200;

En términos de escribir los fragmentos de código para el escenario que estamos implementando, llamaremos el método principal (). El tipo de retorno de la función main (), "int", se escribirá primero, seguido del nombre de la función, que es la función principal (), al llamar a la función. Luego, comience a crear el código abriendo los soportes de la función.

En la siguiente línea, imprimiremos la ID principal de la banda. A continuación, crearemos la clase futura escribiendo la palabra clave reservada "futuro" y aprobando el tipo entero y el nombre de la clase es "FUT". A continuación, la función asyncfunc () devuelve el objeto futuro. Luego usamos la instrucción if para verificar si el futuro "FUT" es válido y si la condición es válida, imprimiremos el objeto futuro utilizando el método Cout (). Luego usamos la declaración if-else para verificar la validez del futuro. Si es válido, compilará el "FUT.Declaración get () "y, si no lo es, imprimirá el mensaje" Inválido.

int main ()

cout <<"Main Thread: "<< this_thread::get_id() << endl;
futuro fut = async (Launch :: Async, AsyncFunc, 400);
if (fut.válido())

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

futuro.conseguir();

demás

cout<<"Invalid" <
regresar 0;

Para informar al compilador que deje de ejecutar el programa y muestre la salida en la pantalla, así como para mostrar la pantalla de error si hay alguna, devolveremos 0 al método main () al final del programa.

Aquí está el resultado del programa compilado anteriormente:

Conclusión

En este artículo, hemos aprendido sobre el archivo de encabezado futuro. Hemos aprendido por qué usamos archivos de encabezado futuros y cómo los implementaremos aprendiendo la sintaxis del futuro. Hemos implementado un ejemplo del futuro con una explicación detallada de cada línea de código para que la confusión se deje en las mentes de los usuarios.