恐らく>>411が言いたいのは、
void func(...); の代わりに、
void func(std::vector<type> args);
こうしたらどうか?ってことなんじゃないかと。

実際やってみれば分かるけど、
これじゃ可変長に出来てもvectorに積める型が1種類だから、
>>412みたいにいちいちunionでラップしなきゃならなくなるのに気が付くはず。
こんなのいちいちやるのアホクサイ。