[C++ TEMPLATE] Static variable inside a templated function

L

LiloLilo

Hi all,

the following function writes n bits data to file. Parameter named
'Data' contains the value to be written, 'Length' contains the number
of bits of 'Data' to write. This function uses a static buffer named
BitBuffer to store bits between calls. When BitBuffer is full it is
written to file.

void WriteBitsToFile(unsigned Data, unsigned Length, std::eek:fstream &
OutFile) {

static unsigned BitBuffer = 0; static unsigned BitCounter = 0;


for (unsigned i = Length; i --; ) {

(BitBuffer <<= 1) |= ((Data >> i) & 0x1); BitCounter ++;

if (BitCounter == 32) { OutFile.write((char *) & BitBuffer,
sizeof(BitBuffer)); BitCounter = 0; }
}

TotalBitCounter += Length;
}

The function works fine, but if I change 'Data' to a templated
variable, BitBuffer gets flushed to 0 at every call, so it does not
retains values between calls. Please note that calls are made always
with the same type for T2 (int) so if I am not wrong it would retain
the value but it doesn't. Why?

template <typename T2> void WriteBitsToFile(T2 Data, unsigned Length,
std::eek:fstream & OutFile) {

static unsigned BitBuffer = 0; static unsigned BitCounter = 0;


for (unsigned i = Length; i --; ) {

(BitBuffer <<= 1) |= ((Data >> i) & 0x1); BitCounter ++;

if (BitCounter == 32) { OutFile.write((char *) & BitBuffer,
sizeof(BitBuffer)); BitCounter = 0; }
}

TotalBitCounter += Length;
}

Thank you all for help.
 
S

Seebs

Your question is about C++. You have posted in a newsgroup which is not
about C++. I urge you to consider posting your question in comp.lang.c++.
Thank you all for help.

Glad to be of service.

-s
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,038
Latest member
OrderProperKetocapsules

Latest Threads

Top