Пространства имён
Варианты
Действия

va_copy

Материал из cppreference.com
< cpp‎ | utility‎ | variadic

Определено в заголовочном файле <cstdarg>
void va_copy(va_list dest, va_list src);
(начиная с C++11)
va_copy макро копии src в dest.
Оригинал:
The va_copy macro copies src to dest.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
va_end должен быть вызван на dest перед возвратом функции или любой последующей повторной инициализации dest (через вызовы va_start или va_copy).
Оригинал:
va_end should be called on dest before the function returns or any subsequent re-initialization of dest (via calls to va_start or va_copy).
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Параметры

dest -
Экземпляр va_list ввести для инициализации
Оригинал:
an instance of the va_list type to initialize
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
src -
Источник va_list, который будет использоваться для инициализации dest
Оригинал:
the source va_list that will be used to initialize dest
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Расширенное значение

(Нет)

[править] Пример

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

Вывод:

0.920258

[править] См. также

позволяет получить доступ к переменным числом аргументов функции
Оригинал:
enables access to variadic function arguments
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция-макрос) [edit]
доступ к следующим переменным числом аргументов функции
Оригинал:
accesses the next variadic function argument
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция-макрос) [edit]
заканчивается обход переменным числом аргументов функции
Оригинал:
ends traversal of the variadic function arguments
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция-макрос) [edit]