Namespaces
Variants

va_copy

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support de type (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
 
Défini dans l'en-tête <cstdarg>
void va_copy( std::va_list dest, std::va_list src );
(depuis C++11)

La macro va_copy copie src vers dest.

va_end doit être appelée sur dest avant le retour de la fonction ou toute réinitialisation ultérieure de dest (via des appels à va_start ou va_copy).

Paramètres

dest - une instance du type va_list à initialiser
src - le va_list source qui sera utilisé pour initialiser dest

Valeur développée

(aucun)

Exemple

#include <cmath>
#include <cstdarg>
#include <iostream>
double sample_stddev(int count, ...) 
{
    double sum = 0;
    std::va_list args1;
    va_start(args1, count);
    std::va_list args2;
    va_copy(args2, args1);
    for (int i = 0; i < count; ++i)
    {
        double num = va_arg(args1, double);
        sum += num;
    }
    va_end(args1);
    double mean = sum / count;
    double sum_sq_diff = 0;
    for (int i = 0; i < count; ++i)
    {
        double num = va_arg(args2, double);
        sum_sq_diff += (num - mean) * (num - mean);
    }
    va_end(args2);
    return std::sqrt(sum_sq_diff / count);
}
int main() 
{
    std::cout << sample_stddev(4, 25.0, 27.3, 26.9, 25.7) << '\n';
}

Sortie :

0.920258

Voir aussi

permet d'accéder aux arguments des fonctions variadiques
(macro de fonction)
accède au prochain argument de fonction variadique
(macro de fonction)
termine le parcours des arguments des fonctions variadiques
(macro de fonction)
Documentation C pour va_copy