Вычислить смещение члена неизвестного типа

Я хочу получить смещение члена структуры. Я знаю, что это было задано несколько раз, и ответ всегда могучий offsetof. Ну, мой случай немного отличается: мне нужно смещение неизвестного типа. Вот например:

void fill_struct(void* unknown)
{
...
}

Единственное, что я узнаю из неизвестного, — это порядок, в котором устанавливаются типы. то есть

int
int
float
...
string

И главная проблема здесь заключается в выравнивании / заполнении, так как я не знаю, как его вычислить, и есть ли способ вообще.


На этот вопрос часто отвечают: Почему вы хотите это сделать?

Для этих людей: я реализую парсер JSON в C ++ и столкнулся с проблемой (представляющей несколько типов массивов), и мое решение состоит в том, чтобы отобразить значения массива в пользовательскую структуру.

Я принимаю отзывы об этом решении, но в основном меня интересует ответ на мой вопрос

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]