C言語における定数式の検出:マクロベースのアプローチ
2025-05-13
この記事では、式がコンパイル時定数であるかどうかをチェックするC言語マクロを作成する様々な方法を探求しています。著者は、C23の`constexpr`と`typeof`、GNU拡張の`__builtin_constant_p`、C11の`static_assert`、そして`sizeof`と複合リテラルを使った巧妙なテクニックを使用する方法を調査しています。それぞれの方法には長所と短所があり、新しいC標準を必要とするもの、コンパイラの拡張機能に依存するもの、式の型を変更したり警告を生成したりするものがあります。この記事は、これらの方法の長所と短所をまとめ、よりエレガントな解決策への希望を述べています。
開発
コンパイル時定数