Literais compostos em MSVC

No GCC, sou capaz de fazer isso:

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

Onde:

struct CachedPath
{
    Ino ino;
};

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

MSVC fornece o seguinte erro para esse tipo de conversão:

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

Como posso fazer isso no MSVC? Observe também que o código foi convertido a partir do C99, onde eu usei inicializadores designados para isso e o converti da mesma forma. Qualquer esclarecimento sobre como esses vários recursos se relacionam entre as implementações C99 e MSVC / GCC do C ++ é apreciado.

questionAnswers(4)

yourAnswerToTheQuestion