Jak przekazać zmienną liczbę argumentów do printf / sprintf

Mam klasę, która posiada funkcję „błędu”, która sformatuje jakiś tekst. Chcę zaakceptować zmienną liczbę argumentów, a następnie sformatować je za pomocą printf.

Przykład:

class MyClass
{
public:
    void Error(const char* format, ...);
};

Metoda błędu powinna przyjąć parametry, wywołać printf / sprintf, aby go sformatować, a następnie coś z nim zrobić. Nie chcę sam pisać całego formatowania, więc warto spróbować dowiedzieć się, jak korzystać z istniejącego formatowania.