複素数の実部を返すマクロを作成したいと考えています (これは double、float、および long double 型で動作します)。GNU C 拡張機能__real__
は、(残念ながら移植性はありませんが) 法案に適合しているようです。私は次のことを試みています:
#include <complex.h>
#if defined(__real__)
#define MYREAL(z) (__real__ z)
#endif
ただし、__real__
拡張子が通常のマクロとして定義されていないように見えるため、 defined( __real__
) テストは使用可能であるにもかかわらず失敗します。__real__
これに適切なマクロを作成するために の存在をテストする方法を知っている人はいますか?
また、これを行う移植可能な方法を誰かが知っていれば、その解決策にも興味があります。