Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat (Limited access)
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat (Limited access)
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

Katsaus C++20 Ranges-kirjastoon

Raitanen, Kalle-Henrik (2022)

 
Avaa tiedosto
RaitanenKalle-Henrik.pdf (1.173Mt)
Lataukset: 

Tekijä ei ole antanut lupaa avoimeen julkaisuun, aineisto on luettavissa vain Tampereen yliopiston kirjastojen opinnäytepisteillä. The author has not given permission to publish the thesis online. The thesis can be read at the thesis point at Tampere University Library.

Raitanen, Kalle-Henrik
2022

Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. Only for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-06-15
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202206105616
Tiivistelmä
Ranges-kirjasto on C++20 standardikirjastoon tehty lisäys, jonka avulla pyritään helpottamaan välien (range) kanssa työskentelyä. Kirjasto on vajavainen versio Nieblerin kirjoittamasta Ranges-V3:sta, ja siitä puuttuu useita ominaisuuksia. Kirjasto sisältää rajoitetut algoritmit (constrained algorithms), laiskasti evaluoitavia (lazy evaluation) näkymiä (views) sekä helpommin sommiteltavia, näkymien luomiseen tarkoitettuja väliadaptereita (range adaptors). Tämän tutkimuksen tarkoituksena on selvittää, mitä etuja Ranges-kirjastolla on, sekä kannattaako siirtyä käyttämään sitä.

Tämä työ on toteutettu kirjallisuus katsauksena. Tieteellisiä tutkimuksia ja kirjastoon kriittisesti suhtautuvia lähteitä on hyvin vähän, ja tärkeimmät lähteet ovat pääsääntöisesti C++ aiheisia kirjoja. Suurin osa lähteistä nosti näkymien laiskan evaluoinnin edut esille, sekä mahdollisuuden ketjuttaa näkymiä siten, ettei välituloksia tarvitse tallentaa. Erityisesti väliadaptereiden liukuhihnoittamista (pipeline) pidettään merkittävänä parannuksena algoritmien sommitteluun. Näkymiä ja väliadaptereita käyttämällä voidaan saavuttaa parempaa koodia, mutta niiden käyttäminen vaatii uuden opettelemista. On tärkeää ymmärtää, kuinka ne toimivat, sillä virheellisellä näkymien käyttämisellä saadaan tehotonta tai jopa käyttökelvotonta koodia aikaiseksi. Väliadaptereiden liukuhihnoittamisen syntaksi voi aluksi näyttää erikoiselta. Tällä hetkellä Ranges-kirjastosta selkeästi puuttuu näkymiä ja väliadaptereita, sekä innokkaasti evaluoitavat (eager evaluation) toiminnot.

Rajoitetut algoritmit puolestaan on helppo ottaa käyttöön, ja niillä olisi suotavaa korvata algoritmikirjaston algoritmien käyttö. Ranges-kirjaston rajoitetuilla algoritmeilla on selkeämmät virheilmoitukset, selkeyttävät syntaksia mahdollisuudella antaa algoritmille argumentiksi väli iteraatttoriparin sijasta, sekä niillä on käytännöllinen projektio-kuormitus.
Kokoelmat
  • Kandidaatintutkielmat (Limited access) [1862]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste