Если есть место в системе (а тут много особо и не нужно лишь около 80 байт, то можно просто хранить маппер для asci символов по типу
то есть для символов '0', '1', '2', ... 'F' будут какие-то осмысленные значения, а для остальных -1
static constexpr char map['G'] = {-1,-1,-1,...0,1,2,3,4,5,6,...}
Szewczyk, вы всегда либо теряете во времени работы, либо в памяти.
С юнионами вы не добьётесь эффективности по памяти, размер будет определяться наибольшим типом, хранящимся в Юнион. Также в плюсах давно рекомендуют std::variadic вместо union (который, впрочем, не имеет преимуществ по памяти). И в связи со всем этим встаёт вопрос а зачем это все, если выгоды по памяти нет?
Можете попробовать реализовать ваш массив как массив char, а интерпретировать элементы исходя из дополнительной переменной, которая будет указывать сколько байт занимает каждый элемент. Тогда в случае, если N < 255 (если тип беззнаковый) кажддый элмент будет занимать 1 байт, и дальше по степеням двойки.
Шаблоны параметр выводится на этапе компиляции программы. Вам нужно явно указать сигнатуры функций, которые будут доступны в DLL в противном случае такая библиотека не имеет смысла.
Все инструменты для обертки есть (проверка на nullptr или has_value), поэтому написать её совсем не сложно. А вот выбор типа нотификации об ошибке и способе ее обработке лежит на ваших плечах
Думаю вот эта ссылка наведет вас на мысли почему такое может произойти. https://godbolt.org/z/d1z3bdsGe
Также для дебага выведите значение каждой итерации и сравните с ожидаемым значнием.
Код в студию. Что работает, что ломается и так далее. Классически передают большие объекты по ссылке или через указатель. Возможно, ваша проблема - область видимости
https://godbolt.org/z/z1o7f63K1
Если есть место в системе (а тут много особо и не нужно лишь около 80 байт, то можно просто хранить маппер для asci символов по типу
то есть для символов '0', '1', '2', ... 'F' будут какие-то осмысленные значения, а для остальных -1
static constexpr char map['G'] = {-1,-1,-1,...0,1,2,3,4,5,6,...}
забыл ещё, что есть уже готовые функции
https://en.cppreference.com/w/cpp/string/byte/isxdigit