Rekurencyjna funkcja wariadyczna

0

Witam, w jaki sposób napisać rekurencyjną funkcję wariadyczną?

0

Chodziło mi raczej o coś w rodzaju szablonów wariadycznych i wielokropków albo void function( auto arg, auto ... args );

3

Np.

#include <iostream>

template<typename T>
void print(T head) {
	std::cout << head << std::endl;
}

template<typename T, typename... Rest>
void print(T head, Rest... rest) {
	std::cout << head << " ";
	print(rest...);
}

int main() {
	print("jeden", 2, "trzy", 4);
	return 0;
}
0

Wiem wiem, zapomniałem o tym xd
Używam 'auto' zamiast szablonów.

0
Ahateon napisał(a):

Używam 'auto' zamiast szablonów.

Skoro używasz abbreviated function z rozszerzenia concepts z C++1z (N4205 [7.1.6.4]) to pisz po ludzku ; >

void print(auto&& head) {
    std::cout << head << std::endl;
}
 
void print(auto&& head, auto&&... rest) {
    std::cout << head << " ";
    print(std::forward<decltype(rest)>(rest)...);
}
 
int main() {
    print("jeden", 2, "trzy", 4);
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1