Сделать вывод аргументов в шаблонном методе из списка параметров
#include <iostream>
#include <stdarg.h>
using namespace std;
template<class ... Arg>
class PrintArguments {
public:
void DisplayCMD(const Arg&... args) const {
va_list vl;
constexpr auto sizeArgs{ sizeof...(Arg) };
cout << "Arguments size:\t" << sizeArgs << endl;
for (size_t i = 0; i < sizeArgs; i++)
{
cout << args[i] << endl;
}
}
};
void main()
{
const char ch = 'H';
PrintArguments<int, double, float, char> print;
print.DisplayCMD(2, 2.5, 2.87f, ch);
}
Ответы (1 шт):
Автор решения: Terabiterr
→ Ссылка
#include <iostream>
using namespace std;
// must have C++ 17
template<class ... Arg>
class PrintArguments {
public:
void DisplayCMD(const Arg&... args) const {
constexpr auto sizeArgs{ sizeof...(Arg) };
cout << "Arguments size:\t" << sizeArgs << endl;
(cout << ... << args); // Expression
}
};
int main()
{
const char ch = 'H';
PrintArguments<int, double, float, char> print;
print.DisplayCMD(2, 2.5, 2.87f, ch);
}