* Angus:
This example demonstrates a memory advantage:
class myclass
{
public:
bool getboolval() { return m_setting1; }
private:
bool m_setting1:1;
bool m_setting2:1;
bool m_setting3:1;
bool m_setting4:1;
bool m_setting5:1;
bool m_setting6:1;
bool m_setting7:1;
bool m_setting8:1;
};
int main(){
int size = sizeof(myclass);
std::cout << size; //reports 1
If however, the :1 syntax above is removed, then size is reported as
8.
My test was using MSVC++v6 on Windows XP (32 bit).
<digression>
You really should upgrade compiler. You'd get the same result, but MSVC 6 is a
pre-standard compiler and has trouble with modern template code, forces you to
write non-standard code, plus it has a host of bugs in floating point support.
AFAIK the latest MSVC compiler is bundled with the SDK, so it's free even
without installing the lobotimized free version of Visual Studio.
</digression>
Yes, it's a memory advantage, but have you tested efficiency?
Cheers, & hth.,
- Alf