T O P I C R E V I E W |
mod42 |
Posted - Sep 26 2007 : 04:12:09 AM Hi
I always format my switch case statements like this:
switch(curChar)
{
case '\\n':
{
foo();
break;
}
case '\\r':
{
bar();
break;
}
case '\\a':
{
foobar();
break;
}
}
But this style is not very well supported by VAX. If I type the first case statement (indented by four spaces) and end it with a ':' it is always put at the same indention as the '{' of the switch statement. If I hit Enter then the curser is indented. Is it possible to change this behavior or make it an option to match my style of switch/case?
mod42 |
9 L A T E S T R E P L I E S (Newest First) |
sl@sh |
Posted - Oct 23 2007 : 10:45:12 AM Well, you *can* construct OO constructs to avoid just about any situation that otherwise would require switch statements - but that doesn't always mean it's practical to do so.
Regarding windows message handling: I've worked with an UML tool that actually gave the programmer the choice to either generate a class hierarchy or switch statements for the state machines in the model. If you chose class hierarchies, each windows event was generated into a new class. In our case, we did start out with a class hierarchy, but soon changed to switch statements because we realized the resolution of virtual function tables at runtime made us miss our realtime deadlines! But that was only a problem because it was an embedded control program with strong time constraints - for a standard PC application the class hierarchy would have worked just fine.
In general I agree that whenever you start writing a switch statement, you *should* consider for a moment, what kind of classification is the basis of this switch, and whether or not it would make sense to actually introduce objects representing this classification. Sometimes it isn't worth the hassle - but sometimes you can make your code just a little better... |
feline |
Posted - Oct 22 2007 : 1:56:11 PM Personally I would not say that.
Consider parsing a simple data file, with conditional fields. For a simple file format switch statements on the conditional field makes a lot of sense, and it is a lot less code than constructing the class hierarchy, especially if you only need a small amount of code for each case.
I like a good class hierarchy, virtual functions, etc, but I only use them when I feel they are useful. To me a switch statement is a simple and effective tool, so use it when it is the right tool.
Also I have the feeling that just about all auto generated windows code handling messages I have seen uses switch statements to decide which message it has just been given. |
AGPX |
Posted - Oct 22 2007 : 08:09:43 AM If you write C++ code and use switch - case so necessarily, man you have something wrong in your object oriented aspect |
sl@sh |
Posted - Oct 01 2007 : 04:19:16 AM Whenever I see the IDE doing an autoformat that I don't like, I just press Ctrl+Z (Undo). That normally does the job (i.e. undo the formatting )
Unfortunately sometimes (not always reproducable) it also undoes the typing . I just tried a switch-case and Undo did work as intended (by me) at least once (but not always ). So I suppose it takes a little experience to do the typing in a way that will preserve the typing after autoformat+undo.... |
accord |
Posted - Sep 27 2007 : 5:17:43 PM Personally I don't expect VAX code formatting. Most of the time I am pleased with Microsoft's solution...
As you said "I also have some idea of the work involved in this idea." I think if you put this time into refactoring, it can give more speedup for developers...
I believe that more and more developer will use refactoring, and it is a good news for VAX team. VAX's parser is not yet perfect, but it the most advanced ever. This plug-in is the only one, which can rename reliably even a C++ variable... So it is the most advanced AND unique feature in VAX, I think.
A lot of programmer can write some code formatting stuff, but who have the audacity to write reliable refactoring features? Only VAX team I have tried Refactor Pro, Ref++, SlickEdit, etc., but none of them was reliable...
|
feline |
Posted - Sep 27 2007 : 09:30:17 AM Personally I am not a great fan of the IDE's C++ code formatting, but at the same time I don't really feel like arguing with it every time I edit a line of code, so in the end I decided to just get used to it *sigh* *shrug*
I am one of many people who like the idea of VA doing code formatting. But I also have some idea of the work involved in this idea. |
accord |
Posted - Sep 26 2007 : 6:25:19 PM I think the IDE's formatting in switch statements is horrible, and programmers usually agree with me... |
feline |
Posted - Sep 26 2007 : 1:53:48 PM You may find this useful:
http://sourceforge.net/projects/gcgreatcode/ |
rhummer |
Posted - Sep 26 2007 : 09:49:58 AM Turn off VA X and you will notice the same behavior. Thats the IDE that does the reformatting. |