Giriş
std::tuple, std::array gibi dizilerdeki elemanları açarak teker teker parametre olarak başka bir metoda sokmak için kullanılır.
Örnek
Elimizde şöyle bir metod olsun.
std::tuple, std::array gibi dizilerdeki elemanları açarak teker teker parametre olarak başka bir metoda sokmak için kullanılır.
Örnek
Elimizde şöyle bir metod olsun.
void printNumber(const int& x, const int& y)
{
std::cout << "ONE" << std::endl;
}
Bu metodu çağıran şöyle bir kod olsun.template<typename... TTuple, std::size_t... Indices>
auto apply_sequence(const std::tuple<TTuple...>& tuple, std::index_sequence<Indices...>)
{
return printNumber(std::get<Indices>(tuple)...);
}
template<typename... TTuple>
auto apply_tuple(const std::tuple<TTuple...>& tuple)
{
return apply_sequence(tuple, std::index_sequence_for<TTuple...>());
}
Çağırmak için şöyle yaparız.std::tuple<int, int> one { 1, 2 };
apply_tuple(one); // ONE
Hiç yorum yok:
Yorum Gönder