Your wdata is indeed a pointer, thus wdata[i+32] actually is equivalent to *(wdata + i + 32), pointing at a Bitset<64>. You are assigning this bitset with tempBitset[i] which unless I'm mistaken is a single bit.
That is, you're trying to assign the value of a single bit to an entire bitset.
I suspect that you're wanting to set a single bit in one bitset to the value of a bit in another, in which case I think you do want the '*':
(*wdata)[i+32] = tempBitset[i];
Meaning, roughly, take the Bitset<64> pointed at by wdata, and set its bit [i+32] to the same value as the bit [i] of the bitset in tempBitset.