.inl ファイルの関数テンプレートの実装に問題があります (Visual C++)
私はヘッダーファイルにこれを持っています。
math.h ->>
#ifndef _MATH_H
#define _MATH_H
#include <math.h>
template<class REAL=float>
struct Math
{
// inside this structure , there are a lot of functions , for example this..
static REAL sin ( REAL __x );
static REAL abs ( REAL __x );
};
#include "implementation.inl" // include inl file
#endif
これが .inl ファイルです。
implementation.inl -->>
template<class REAL>
REAL Math<REAL>::sin (REAL __x)
{
return (REAL) sin ( (double) __x );
}
template<class REAL>
REAL Math<REAL>::abs(REAL __x)
{
if( __x < (REAL) 0 )
return - __x;
return __x;
}
正弦関数を呼び出すと、実行時にエラーが発生します。ただし、 abs 関数は正しく機能します。
問題は、.inl ファイル内のヘッダー math.h の関数の 1 つを呼び出すことだと思います
.inl ファイル内で math.h 関数を使用できないのはなぜですか?