Wow; I read, like, 5 of the replies so far but there was too much blah-blah-blah for me to stay interested.
I like to use tabs to indent, but not to align, my code and comments. It irritates me when people use tabs as a fix-all kludge, because if I happen to like a tab to indent the equivalent of 3 spaces instead of 4 or 8, seeing someone else's code is all ugly and I either need to fix MY settings to see it "properly" or reformat THEIR code just so I can see things in the way they intended.
At work, they are 100% tabs (50% of the time, they use tabs instead of spaces between words as well, which irritates me even more). The only way I can live with it without going postal is the fact that I have several MASSIVE monitors that I don't need to scroll horizontally to see everything.
This is what I do at home, though (I'll show tabs with "--|" to indicate tab-spacing boundaries):
|7||--|--|something(); // Default constructor|
|8||--|--|~something(); // Default destructor|
|10||--|--|unsigned int size(); // Return the size of the array|
|11||--|--|char *getString(); // Return a pointer to the string|
|12||--|--|void setString(char *); // Set the string|
|15||--|--|char *mString; // Private array for the strings|
|16||--|--|unsigned int mSize; // Size of the string|
|19||// ...and so on, and so forth...|
|21||int someFunction(int aaa, char *bbb, bool flag = false)|
|23||--|// First, we're going to do something with 'aaa',|
|24||--|// then something else with "bbb", and finally, check|
|25||--|// whether or not "flag" is set to TRUE. If it's not,|
|26||--|// life as we know is must end and all people must die.|
|28||--|// ... stuff ...|
|30||--|int reallyLongVariable = someScope::ID_TRUST_ME; // Notice where the indentation|
|31||--| // is on this line, and that I pad with a|
|32||--| // single TAB, and then fill the rest with|
|33||--| // spaces to ALIGN.|
So as the example shows, no matter WHAT my tab settings may be, all the comments (especially those hanging comments near the bottom) will be aligned: your tab settings may be at 1 character, or 8, or 4,8,12,20,24,32 for all I care: it all lines up in the end.
So I like to indent with tabs, but after I followed the previous line's indentation (so if it has a couple tabs, I match those tabs), I use spaces to actually align everything up to look nice and orderly.
Sorry if someone already answered this above, and I just didn't feel like reading your posts/comments.