нераспознанный тип кодировки контента

... хммм ... может быть, не переносится ... наверняка не приятно ... но может решить проблему yor ...

  • va_list (по крайней мере, для визуального c ++) просто #define для char *
  • & rarr; аргументы не должны находиться в стеке
  • & rarr; аргументы должны просто быть непрерывными в памяти
  • & rarr; нет необходимости использовать ассемблер и / или копирование (см. мой «просто для забавного ответа»: -)
  • & rarr;
  • проверено на w2k3 sp2 32bit + vc ++ 2010

#include <stdarg.h>
#include <string>
#include <vector>
#include <iostream>

#define N 6 // test argument count

void foo(int n, va_list args);

int main(int, char*[])
{
    std::vector<std::wstring> strings;
    std::wstring s(L"a");
    int i(0);

    // create unique strings...
    for (; i != N; ++i)
    {
        strings.push_back(s);
        ++s.front();
    }
    foo(N, reinterpret_cast<va_list>(strings.data()));
    return 0;
}

void foo(int n, va_list args)
{
    int i(0);

    for (; i != n; ++i)
        std::wcout << va_arg(args, std::wstring) << std::endl;
}

0
задан Pascal 11 March 2019 в 20:23
поделиться