間違えた。
#include <math,h> →#include <math.h>
>>992 の現象が出たのはmain()関数で
#include <stdlib.h>
#include "math.h"
としていたからだったorz。
gccではstdlib.hで定義されたabsが呼び出される。
"math.h"は無視された形だが、これをincludeすること自体は
文法的に間違いではない?
しかし、VC++2008では
#include <stdlib.h>
#include "math.h"
と並べると、後にincludeされるmath.h内のabsが呼び出される。
using namespace std; はあっても無くても関係ない。
どうでも良いことだけど、これ関係のトラブルで悩む人も出て
くるかもしれないので一応報告しておく。