STD Future C ++

STD Future C ++

I dag skal vi lære om en av de viktige overskriftsfilene til C ++ programmeringsspråket som er "fremtidens" bibliotek. For å unngå forvirring når du lærer konseptet med fremtidig overskriftsfil, la oss kort gjennomgå C ++ -språket før vi går videre til hovedemnet. Betydningen av overskriftsfiler og begrunnelsen bak bruken av dem på kodingsspråket C ++ vil også bli diskutert.

Kodingsspråket C er forgjengeren til C++. I tillegg kan vi oppgi at det er en forbedret form for C som er basert på prinsippet om objektorientert programmering (OOP). Når vi skriver et program på programmeringsspråket C ++, bruker vi standard overskriftsfiler, klasser, funksjoner osv. Disse redder oss fra å måtte skrive en rekke kodelinjer. Ved hjelp av noen få reserve nøkkelord, legger vi ganske enkelt til overskriftsfilen.

Introduksjon

I C ++ -programmer må vi inkludere minst ett bibliotek som er flertallet av C ++ -programmer som krever Cin () og COUT () -metoder, slik at vi godtar data fra brukeren og mange andre forhåndsskrevne koder som gjør koden mer leselig. For å få tilgang til disse funksjonene, må du ha en overskriftsfil. Det "fremtidige" biblioteket brukes til å lage klassemaler og tilhørende maler som gjør det lettere å utføre en metode som kan ha vært i en annen tråd og hente resultatene. Utfallet er enten antallet som metoden returnerer eller et unntak som metoden genererer, men ikke fanger.

For bedre å forstå den fremtidige overskriften File -tilnærmingen, la oss undersøke den fremtidige pakken for å se hvordan dette biblioteket brukes og implementeres på C ++ programmeringsspråk, i tillegg til hva de tilknyttede funksjonene i fremtidens modul er.

Syntaks:

Slik skal C ++ -programmets overskriftsfil ved å bruke "#include Future>" -taggen skrives. La oss nå begynne å forstå implementerings- og skrivestilen til det fremtidige biblioteket. C ++ programmeringsspråkets "#include" forbehandlerdirektiv er skrevet på følgende måte. Ved å referere til dem som forprosessorinstruksjoner, undersøker forbehandleren programmet for spesifikke direktiver som det kan forstå. Hvert forbehandlerdirektiv begynner med # (hasj) symbolet.

Forbehandleren utfører først foreløpige handlinger som implisitt å kjøre koden, inkludert programrelaterte filer osv. Før oversetteren til og med møter programmet. En fremtid er en representasjon av resultatene av en asynkron operasjon som ennå ikke kunne være tilgjengelig. Når beregningene er ferdige, kan fremtiden inneholde en verdi eller den kan vise en feil.

Eksempel:

For å forstå konseptet med fremtidige overskriftsfiler, vil vi implementere fremtidige biblioteker og vil også diskutere noen andre biblioteker og funksjoner som vi skal bruke. Vi vil nå opprette ett eksempel på den fremtidige overskrifterfilen i programmeringsspråket C ++.

For å gjøre det, bruker vi først en C ++ 11 eller over versjon av kompilatoren som støtter fremtidens bibliotek. Det fremtidige biblioteket vil ikke fungere riktig på online -kompilatoren hvis du ikke har C ++ 11 eller over kompilatoren, og dermed må du installere den. Begynn å skrive eksemplet som vi ønsker å implementere etter installasjon og startet kompilatoren. For å sikre at programmets handlinger, som betyr klasser, objekter, funksjoner osv.

Metodene vi implementerte i programmet ville ikke ha fungert uten overskriftsfilene. WWE ville ikke engang sett utfallet på brukerpanelet. Når vi vil inkludere hvilken som helst overskriftsfil, skriver vi først "#" -symbolet som forteller kompilatoren at vi legger til biblioteket til det eksisterende programmet. Hodefilnavnet som vi ønsker å legge til programmet, vil bli skrevet etter det reserverte C ++ nøkkelordet "Inkluder" som brukes til å inkludere overskriftsfilen, og neste gang vil vi skrive biblioteknavnet "iostream".

Iostream betyr at vi kan få inngangen fra brukeren ved å bruke CIN () -metoden, og vi kan også vise resultatene ved å bruke Cout () -metoden. Vil deretter legge til en annen overskriftsfil som er "#include i programmet fordi trådoverskriftsfilen inneholder definisjoner for trådklassene som vi vil implementere i hovedfunksjonen () og tilhørende funksjoner.

På C ++ programmeringsspråk er en enkelt tråd representert med trådklassen ved å bruke std :: tråd. Nå vil vi inkludere en heading til som er “#include Library. Vi kan bruke dette biblioteket til flere formål med programmet som når vi ønsker å støtte tråd i programmet, og det venter også på en asynkront forhåndsbestemt funksjon som kjører funksjonen asynkront og gir fremtiden for funksjonsverdien.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;

I tillegg vil vi legge til en uttalelse til "ved hjelp av navneområde STD," som brukes til å spesifisere programmets omfang. Enkelt sagt, det begrenser oss fra å erklære objekter, metoder og argumenter over hele det eksisterende programmet med referanser til samme omfang.

Deretter vil vi implementere en global asynkron funksjon for å få IDen til slitebanen. Først vil vi skrive returtypen av funksjonen som er et heltall. Deretter vil vi skrive navnet på funksjonen som vi har erklært ID “asyncfunc”. Deretter har vi i funksjonsbrakettene passert datatypen og variabelen. I ASYNCFUNC () -funksjonen har vi skrevet ut IDen til tråden ved å bruke cout () -metoden. På linje 10 har vi returnert verdien til den variable "verdien" som vi har erklært i AsyncFun () funksjonsgrupper.

int asyncfunc (int -verdi)

cout << "Asynchronous Thread: " << this_thread::get_id() << endl;
Retur "Verdien er:", verdi + 200;

Når det gjelder å skrive kodebiter for scenariet vi implementerer, vil vi deretter kalle Main () -metoden. Hoved () -funksjonens returtype, "Int," vil bli skrevet først, etterfulgt av funksjonsnavnet, som er hoved- () -funksjonen, når du ringer funksjonen. Begynn deretter å lage koden ved å åpne funksjonens parentes.

I neste linje vil vi skrive ut hoved -IDen til slitebanen ved å skrive “this_thread :: get_id ()” og sende den inn i cout () -metoden. Deretter vil vi opprette fremtidsklassen ved å skrive det reserverte nøkkelordet "fremtid" og bestå heltallstypen og navnet på klassen er "fut". Deretter returnerer AsyncFunc () -funksjonen fremtidens objekt. Så brukte vi IF -uttalelsen for å sjekke om fremtidens “fut” er gyldig, og om tilstanden er gyldig, vil vi skrive ut det fremtidige objektet ved å bruke cout () -metoden. Så brukte vi IF-Else-setningen for å sjekke fremtidens gyldighet. Hvis det er gyldig, vil det sammenstille “fut.få () "uttalelse, og hvis det ikke er det, vil det skrive ut meldingen“ Ugyldig.

int main ()

cout <<"Main Thread: "<< this_thread::get_id() << endl;
Future FUT = Aync (lansering :: Aync, Ayncfunc, 400);
hvis (fut.gyldig())

cout << fut.get()<
hvis (fut.gyldig())

fut.få();

ellers

cout<<"Invalid" <
retur 0;

For å informere kompilatoren om å slutte å kjøre programmet og vise utdataene på skjermen, samt for å vise feilskjermen hvis det er noen, vil vi returnere 0 til Main () -metoden på slutten av programmet.

Her er utgangen fra det ovennevnte programmet:

Konklusjon

I denne artikkelen har vi lært om den fremtidige overskriftsfilen. Vi har lært hvorfor vi bruker fremtidige overskriftsfiler og hvordan vi vil implementere dem ved å lære fremtidens syntaks. Vi har implementert et eksempel på fremtiden med en detaljert forklaring på hver kodeinje slik at forvirring blir igjen i brukernes sinn.