Как раскрыть parameter pack в statement-ы, без специализации (в конструкторе, например)?
class A {
public:
template <typename... Args>
A(Args&... args) {
(args.value = 3)...; // ???
// arg1.value = 3;
// arg2.value = 3;
// arg3.value = 3;
// ...
}
};
Придумал такое, но как-то уж слишком костыльно, даже для c++:
class A {
public:
template <typename T>
int set(T& x) {
x.value = 3;
return 0;
}
template <typename... Args>
void foo(Args... args) {}
template <typename... Args>
A(Args&... args) {
foo(set(args)...);
}
};