私は C++ プログラミングの初心者で、C++ で固定小数点演算を実装するタスクを与えられています。ここでは、数値が非数値の場合に true を返す関数 isnan() を実装しようとしています。それ以外の場合は false を返します。
テストファイル
#include "fixed_point_header.h"
int main()
{
fp::fixed_point<long long int, 63> a=fp::fixed_point<long long int, 63>::positive_infinity(); // will assign positive infinity value to a from an function from header
fp::fixed_point<long long int, 63> b=fp::fixed_point<long long int, 63>::negative_infinity(); // will assign positive infinity value to b from an function from header
float nan=fp::fixed_point<long long int, 63>::isnan(a,b);
printf( "fixed point nan value == %f\n", float (nan));
}
ヘッダーで、以下に示すコードのように、正と負の無限値が追加された場合、isnan 関数は 1 を返し、それ以外の場合は 0 を返します。
ヘッダーファイル
#include fixed_point_header
static fp::fixed_point<FP, I, F> isnan (fp::fixed_point<FP, I, F> x,fp::fixed_point<FP, I, F> y){
/*if ( x + y ) happens, ie. x and y are infinities
{
should return 1; }
else {
should return 0; }
} */
誰でもそれを進める方法を教えてもらえますか? またはこのパラダイムを解決する方法