Giriş
Her bir elemanı bir önceki sonuç ile çağır anlamına gelir.
Metodun imzasında ...,pack şeklinde kullanılır.
Kodda önce üç nokta daha sonra bir operator ve daha sonra bir işlem gelir.
Variadic Template Unary Right Fold yazısına da göz atabilirsiniz
Örnek
Elimizde şöyle bir kod olsun. Bu a ve b karakterlerinin days nesnesinin ilk iki karakteri ile aynı olup olmadığını döner.
Şöyle yaparız
Şöyle yaparız
Her bir elemanı bir önceki sonuç ile çağır anlamına gelir.
Metodun imzasında ...,pack şeklinde kullanılır.
Kodda önce üç nokta daha sonra bir operator ve daha sonra bir işlem gelir.
Variadic Template Unary Right Fold yazısına da göz atabilirsiniz
Örnek
Elimizde şöyle bir kod olsun. Bu a ve b karakterlerinin days nesnesinin ilk iki karakteri ile aynı olup olmadığını döner.
template<typename ...Days>
bool any_of(char a, char b, Days ...days)
{
return (... || (a == days[0] && b == days[1]));
}
Elimizde iki değişken olsun.char dayOne, dayTwo = ...;
Şöyle yaparızany_of(std::tolower(dayOne), std::tolower(dayTwo), "mo", "tu", "we", "th", "fr", "sa",
"su")
ÖrnekŞöyle yaparız
template<typename ...Args>
void output_argus(Args&&... args)
{
(cout << ... << args) << EOL;
}
int main()
{
output_argus(1, "test", 5.6f);
}
Çıktı olarak şunu alırız.1test5.6
ÖrnekŞöyle yaparız
template<typename... Ts>
auto mean_of(const Ts... values)
{
return ( (... + values) / static_cast<double>(sizeof...(Ts)) );
}
Çağırmak için şöyle yaparız.std::cout << mean_of(1, 3);
Hiç yorum yok:
Yorum Gönder