Pokial to potrebujes v c/c++ idealne by bolo pouzit union:
union tuple_union{
    struct {
        __int16_t idx;
        __int16_t val;
    } as_tuple;
    __int32_t as_single_number;
};
mozes potom k rovnakym datam pristupovat pohodlne ako k dvojici 16 bitovych intov a zaroven jednemu 32 bitovemu intu...