
On 9/21/06, Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> wrote:
On Thu, 2006-09-21 at 08:54 -0400, Michael Fawcett wrote:
You can get around this using something like this:
<snip code>
Here's the original discussion from gamedev.net http://www.gamedev.net/community/forums/topic.asp?topic_id=261920
This wasn't written by me, I just remembered it from there and thought it might be interesting to you.
Interesting ! But I would certainly prefer the straightforward array implementation and an enum {X,Y,Z,Z} that allows the notation
V[X] or V(X) (depending on your preference). The only fear I may have with your proposal is that by having complicated accesses, the compiler might not be able to do some optimizations.
Theo.
There was another thread where the participants looked at the generated assembly (MSVS 7.1) and found that it was the same as indexing into an array. The really interesting thing was that the first time they forgot the const keyword and the generated code was sub-optimal. After fixing the const-correctness issues the VS 7.1 optimizer was able to produce code identical to array indexing. http://www.gamedev.net/community/forums/topic.asp?topic_id=230443&PageSize=25&WhichPage=2 No one has posted a detailed analysis of the generated code in more complex cases though, but for the simple case it appears that at least VS 7.1 can optimize the code just fine. --Mike