[c++] 가변 인자 함수 (Variadic function)
#include <iostream>
#include <string>
#include <vector>
// 가변 인자 함수 예시
template<typename... Args>
void log(Args... args) {
(std::cout << ... << args) << '\n';
}
int main() {
log("Hello", "world", 123, 3.14, std::string("C++"));
return 0;
}
위의 예시에서 log
함수는 임의의 수의 인자를 받아 화면에 출력하는 함수입니다. Args...
는 가변 인자 템플릿이며, args
는 패킹된 인자들을 나타냅니다.
가변 인자 함수를 사용하면 고정된 수의 인자가 아닌 다양한 수의 인자를 처리할 수 있으며, 가변 인자 템플릿을 사용하면 더 많은 유연성을 얻을 수 있습니다.
참고문헌:
- C++ Templates: The Complete Guide (Vandevoorde & Josuttis, 2003)
- C++ Primer (Lippman, Lajoie, & Moo, 5th Edition)