Составные литералы в MSVC

В GCC я могу сделать это:

(CachedPath){ino}
inode->data = (struct Data)DATA_INIT;

где:

struct CachedPath
{
    Ino ino;
};

typedef int8_t Depth;
struct Data
{
    Offset size;
    Blkno root;
    Depth depth;
};
#define DATA_INIT {0, -1, 0}

MSVC выдает следующую ошибку для такого рода приведений:

error C2143: syntax error : missing ';' before '{'

Как я могу сделать это в MSVC? Далее обратите внимание, что код был преобразован из C99, где я использовал назначенные инициализаторы для этого, а затем преобразовал его аналогичным образом. Любая ясность в отношении того, как эти различные функции связаны между C99 и реализациями MSVC / GCC C ++, приветствуется.

Ответы на вопрос(4)

Ваш ответ на вопрос