プログラミング言語Cの次期仕様C2yでは、複素数型(_Complex float/double/long double
)に対するインクリメント/デクリメントが正式サポートされる。gcc/Clangでは独自拡張としてサポート済み。
_Complex double c = 41.; ++c; // OK: C2y assert(c == 42.);
ノート:複素数のうち実部(real part)が+1.0/-1.0される。C++標準ライブラリの複素数型std::complex<T>
は、C言語とは異なりインクリメント/デクリメントをサポートしない。
gcc 14.2/-pedantic指定時の警告メッセージ:
warning: ISO C does not support '++' and '--' on complex types [-Wpedantic]
Clang 18.1.0/-pedantic指定時の警告メッセージ:
warning: ISO C does not support '++'/'--' on complex integer type '_Complex double' [-Wpedantic]
関連URL