In my opinion, a label(included'public:', 'private:' and 'protected')should not be indented to keep it easy to be find.
I think the parser could do it like this way: when the ENTER is pressed, check the prev line, if there is just a label, then cancel indent.
BTW, I think when we typed a '{' or '}', the indent should be adjusted automatically. For example, when we may write
for(vector<int>::iterator i = v.begin();
i != v.end();
++i)
Then we would type ENTER, and the CodeBlocks will generate '{' and '}' for us, but it looks like that:
for(vector<int>::iterator i = v.begin();
i != v.end();
++i)
{
}
This is not what we want. Could someone solve this problem?