планирую писать на C(без плюсов) и python 3.8
Ну, ну раз нельзя, так нельзя
Black::Convert. Она употребляет всё, от простых или стандартных типов, до линейных и ассоциативных контейнеров, или любых объектов любого типа, для которого инстанцирован тип конвертера.std::string, а относительно всех стандартных типов строк и между всеми ними.to_string работает с аргументом типа int, про который у тебя задан вопрос.variant<std::string, int> value = 100 и ты понимаешь что тебе нужно строковое значение. У тебя нет проблемы в понимании, как использовать std::to_string.int в std::string, достаточно документации.std::variant тоже не нужен, т.к. у него все те же проблемы с производительностью. Использовать вариант удачно получается только в крайне ограниченном наборе случаев. Один из таких случаев - это возврат из функции значения или ошибки одним объектом вместо кортежа. И в этом случае вариант не уходит дальше результата функции. Примеров, где длительное хранение варианта оправдано, вообще почти нет.std::variant пишешь.Napi::Array вместо массива вариантов. Napi::Array, раз работа с массивом идет? TCHAR и узнаешь где и как он определен.TCHAR является псевдонимом для wchar_t. В этом случае тебе ничего специального делать для преобразования не нужно.
Если ты хочешь чтобы это решили за тебя, то тебе на фриланс.