Это - текстовое кодирование двоичных данных, где результирующий текст имеет только буквы, числа и символы "+", "/" и "=". Это - удобный способ хранить/передавать двоичные данные по медиа, который конкретно используется для текстовых данных.
, Но почему Основа 64? Эти две альтернативы для преобразования двоичных данных в текст, которые сразу приходят на ум:
Основа 64 карты 3 байта (8 x 3 = 24 бита) в 4 символах, которые охватывают 6 битов (6 x 4 = 24 бита). Результат смотрит что-то как "TWFuIGlzIGRpc3Rpb...". Поэтому чрезмерное увеличение размера является только простым 4/3 = 1.3333333 раза оригинал.
Для неуправляемого C ++ с тем же удобным синтаксисом, №
Но есть поддержка списков переменных аргументов для функций в C ++.
Обычно вы объявляете с последним параметром в виде многоточия (...), а в теле функции используйте вызовы va_start () / va_arg () для анализа предоставленного списка параметров.
Этот механизм небезопасен по типу, и вызывающий может передать что угодно, поэтому вы должны четко задокументировать открытый интерфейс функции и то, что вы ожидаете передать.
Информацию об управляемом коде C ++ см. в комментариях Рида.
В усилении имеется библиотека именованных параметров (если я правильно понял, что такое параметры в C #). Он позволяет писать такие функции:
int y = lib::f(_name = "bob", _index = 2);
Ничего не могу сказать о значительных накладных расходах.
Да. В стандартном C ++ вы можете использовать синтаксис va_arg и .... См. MSDN для получения дополнительной информации .
Для C ++ / CLI есть ярлык для этого.
Вы делаете это как:
void TheMethod( String^ firstArgument, ... array<Object^>^ variableArgs );
См. Это сообщение в блоге для получения подробной информации .