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