この質問では:
典型的な C++ コンパイラがコンパイル時に型の名前を出力する方法について、いくつかの提案があります。ただし、コンパイル エラーのトリガーに依存しています。
私の質問:コンパイルを停止せずに C++ コンパイラに型の名前を出力させることはできますか?
一般に、答えは「おそらくない」です。有効なプログラムは、どこにも出力せずにターゲット オブジェクトにコンパイルできるため、プリプロセッサ ディレクティブ、コンパイラ ビルトイン、または任意のコンパイラを使用して、GCC と clang について具体的に尋ねています。固有のトリック。
ノート:
- 明らかに、課題は、
using/typedef
ステートメント、テンプレートパラメーター値、可変個引数テンプレートなどの背後にある型を出力することです。型が明示的に使用可能な場合は、#message "my type is unsigned long long"
(@NutCracker が提案したように) のようなものを使用できます。しかし、それは質問の目的ではありません。 - C++11 以前に依存する回答は、C++14/17/20 を要求するよりも優先されます。