#include <iostream>
void PrintInternal() {
std::cout << std::endl;
}
template <typename...ARGS>
void PrintInternal(const double& head, const ARGS&...rest);
template <typename T, typename...ARGS>
void PrintInternal(const T& head, const ARGS&...rest) {
std::cout << head << " ";
PrintInternal(rest...);
}
template <typename...ARGS>
void PrintInternal(const double& head, const ARGS&...rest) {
std::cout << "DBL!!! " << head << " ";
PrintInternal(rest...);
}
template <typename...ARGS>
void Print(const ARGS&...args) {
PrintInternal(args...);
}
int main() {
Print(1.1, 2, 3.3, 4);
Print(0, 1.1, 2, 3.3, 4);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp2b2lkIFByaW50SW50ZXJuYWwoKSB7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUuLi5BUkdTPgp2b2lkIFByaW50SW50ZXJuYWwoY29uc3QgZG91YmxlJiBoZWFkLCBjb25zdCBBUkdTJi4uLnJlc3QpOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uQVJHUz4Kdm9pZCBQcmludEludGVybmFsKGNvbnN0IFQmIGhlYWQsIGNvbnN0IEFSR1MmLi4ucmVzdCkgewogICAgc3RkOjpjb3V0IDw8IGhlYWQgPDwgIiAiOwogICAgUHJpbnRJbnRlcm5hbChyZXN0Li4uKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lLi4uQVJHUz4Kdm9pZCBQcmludEludGVybmFsKGNvbnN0IGRvdWJsZSYgaGVhZCwgY29uc3QgQVJHUyYuLi5yZXN0KSB7CiAgICBzdGQ6OmNvdXQgPDwgIkRCTCEhISAiIDw8IGhlYWQgPDwgIiAiOwogICAgUHJpbnRJbnRlcm5hbChyZXN0Li4uKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lLi4uQVJHUz4Kdm9pZCBQcmludChjb25zdCBBUkdTJi4uLmFyZ3MpIHsKICAgIFByaW50SW50ZXJuYWwoYXJncy4uLik7Cn0KCmludCBtYWluKCkgewogICAgUHJpbnQoMS4xLCAyLCAzLjMsIDQpOwogICAgUHJpbnQoMCwgMS4xLCAyLCAzLjMsIDQpOwp9