Berechnen Sie den Durchschnitt mehrerer Werte mithilfe einer Variadic-Template-FunktionC++

Programme in C++. Entwicklerforum
Anonymous
 Berechnen Sie den Durchschnitt mehrerer Werte mithilfe einer Variadic-Template-Funktion

Post by Anonymous »

Ich versuche, eine Funktion zu schreiben, um den Durchschnitt einer beliebigen Anzahl von Argumenten zu bestimmen, die alle denselben Typ haben. Zu Lernzwecken versuche ich, dies mithilfe einer variadic-template-Funktion zu tun.

Das ist, was ich bisher habe:

Code: Select all

template
T Mean(Args ... args)
{
int numArgs = sizeof...(args);
if (numArgs == 0)
return T();           // If there are no arguments, just return the default value of that type

T total;
for (auto value : args...)
{
total += value;
}

return total / numArgs;   // Simple arithmetic average (sum divided by total)
}
Wenn ich versuche, dies zu kompilieren (mit MS Visual Studio 2013), erhalte ich den folgenden Kompilierungsfehler:

Code: Select all

error C3520: 'args' : parameter pack must be expanded in this context (test.cpp)
Wie soll ich das args-Parameterpaket richtig „entpacken“? Ich dachte, das sei der Zweck der Ellipsen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post