Zastosowanie variadic templates do zwrócenia tupli zmiennej długości.
Ostatnio zmodyfikowano 2020-11-29 16:29
Szustarol Temat założony przez niniejszego użytkownika |
Zastosowanie variadic templates do zwrócenia tupli zmiennej długości. » 2020-11-29 16:03:27 Witam. Rozważmy prosty przykład, potrzebuję funkcję, która zwraca liczby od parametr+ 1 do parametr+N w tupli. Oczywiście nie jest to zastosowanie do którego rzeczywiście szukam rozwiązania, ale będzie najłatwiej tak wytłumaczyć. Potrzebowałbym więc funkcji, której wywołania może działać tak: auto from1_to_3 = func < 3 >( 1 );
std::tuple < int, int, int > from1_to_3p = func < 3 >( 1 );
Czy jest możliwa implementacja takiej funkcji bez większego "kobinowania", czy potrzebne byłyby sztuczki? Ergo, czy da się to zrobić bez znacznej komplikacji kodu? |
|
pekfos |
» 2020-11-29 16:29:17 Możesz użyć std::tuple_cat i func napisać rekurencyjnie: func<1> zwraca krotkę jednoelementową, a func<n> zwraca sklejoną krotkę jednoelementową ze zwróconą z func<n-1>. |
|
« 1 » |