Harjutusülesanded
1. Liitmise piiramine
Loo funktsioonimall nimega liidaJaPiira
, millel on kaks malliparameetrit. Esimene neist on tüübiparameeter T
, teine täisarv N
vaikimisi väärtusega 10. Funktsioonil endal on kaks parameetrit tüübiga T
ja funktsioon tagastab antud parameetrite summa juhul, kui see on väiksem kui teine malli parameeter. Vastasel juhul tagastada malli teise parameetri väärtus.
Näide funktsiooni poole pöördumisest:
int main() { std::cout << liidaJaPiira(4, 1) << '\n'; std::cout << liidaJaPiira(10, 100) << '\n'; std::cout << liidaJaPiira<int, 0>(0, 1) << '\n'; return 0; }
Väljund:
5 10 0
2. Elementide salvestaja
Loo funktsioonimall tüübiparameetriga T
, mille signatuur on järgmine: void looFailJaKirjuta(filesystem::path asukoht, T elemendid[], size_t arv)
. Funktsioon peab avama väljundfaili antud asukohale ning kirjutama sinna teises parameetris antud elemendid. Kolmas parameeter määrab elementide arvu. Kui faili ei eksisteeri, peab funktsioon selle looma.
Näide:
int main() { auto asukoht = filesystem::path("elemendid.txt"); string elemendid[] = {"üks", "kaks", "kolm"}; looFailJaKirjuta<string>(asukoht, elemendid, 3); }
Faili elemendid.txt sisu:
üks kaks kolm