Ticket #15 (closed バグ報告: fixed)

Opened 11 years ago

Last modified 8 years ago

vc++6の数学関数のstd名前空間へのインポートの不備

Reported by: anonymous Owned by: ddeguchi
Priority: Milestone: 1.3.5
Component: Mist Version:
Keywords: Cc:

Description

mist_conf.hの下記の定義だと、例えばstd::cos(0.5)などで、無限再帰呼び出しに陥る。 ---<< 抜粋 >>---------

#include <cmath>

VC6では、STD名前空間にABS関数等が入っていない問題を修正 #define STD_CMATH_FUNC1( name, func, value ) inline value name ( value v ){ return( func( v ) ); } namespace std {

...

STD_CMATH_FUNC1( cos, cos, double )

...

} #undef STD_CMATH_FUNC1


これを修正するには、STD_CMATH_FUNC1/2の定義を次のように変える。

#define STD_CMATH_FUNC1( name, func, value ) inline value name ( value v ){ return( ::func( v ) ); }  ::でグローバルネームスペースを指定 #define STD_CMATH_FUNC2( name, func, value ) inline value name ( value v1, value v2 ){ return( ::func( v1, 2 ) ); }

Change History

comment:1 Changed 11 years ago by ddeguchi

  • Owner changed from somebody to ddeguchi
  • Status changed from new to assigned

報告ありがとうございます. [949] でバグを修正しました. リポジトリから最新のソースを落としてご利用ください.

comment:2 Changed 11 years ago by ddeguchi

  • Milestone set to 1.4

comment:3 Changed 10 years ago by ddeguchi

  • Status changed from assigned to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.