Oh yeah, I forgot to mention I also had to add a no-args constructor to desVal:
Code:
class desVal
{
..    
    desVal() :
        desPos(0),
        HdesPos(0)
    {
    }
...
};
I thought it might be slower because of using 'pair'. I know that templates are expanded at compile time...maybe template expansion plus optimization caused the compiler to work a lot harder. Just a guess.