Oracle® Developer Studio 12.5 リリースの新機能

印刷ビューの終了

更新: 2016 年 7 月
 
 

数学ライブラリの変更点

Oracle Solaris Studio 12.4 以前のリリースのコンパイラでは、<sunmath.h> ヘッダーファイルに「ラッパー」関数の C/C++ プロトタイプが含まれていました。これらは、libsunmath 内のさまざまな非標準の数学関数や浮動小数点ユーティリティールーチンを呼び出すために Fortran から呼び出されていたものです。これらの「ラッパー」関数自体は、C/C++ から直接呼び出すことができる対応する関数を呼び出すだけなので、C/C++ プログラムでそれらを使用する必要はありません。たとえば、「ラッパー」関数 r_atan2d_ は、C 関数 atan2df と同等です。

Oracle Developer Studio 12.5 では、これらの「ラッパー」関数は非推奨です。<sunmath.h> 内のそれらのプロトタイプは、プリプロセッサマクロ __SUNMATH_DEPRECATED によって監視されるようになり、C プログラムでこれらの関数を使用すると、警告が生成されます。

example% cat func.c
    #include <sunmath.h> 
    float func(float x, float y) {  
        return r_atan2d_(&x, &y); 
    }
    example% cc -c func.c 
    "func.c", line 4: warning: implicit function declaration:
    r_atan2d_ 
    example% 

結果となるプログラムによって間違った結果が生成される可能性があります。このようなプログラムは、対応する C 関数を直接使用して書き直すようにしてください。

return atan2df(x, y);

あるいは、<sunmath.h> の組み込みに #define __SUNMATH_DEPRECATED prior を追加したり、コマンド行で指定されたコンパイラフラグに -D__SUNMATH_DEPRECATED を追加したりできますが、「ラッパー」関数は今後のリリースですべて削除される可能性があることに注意してください。