[解決済み] Macroの引数を文字列リテラルとして使用するには?
2023-01-08 06:41:25
質問
変数名の文字列リテラル表現と変数そのものを関数に渡すマクロをどのように書けばよいかを考えています。
たとえば、次の関数があるとします。
void do_something(string name, int val)
{
cout << name << ": " << val << endl;
}
これができるようにマクロを書きたいと思います。
int my_val = 5;
CALL_DO_SOMETHING(my_val);
どちらが出力されるかというと
my_val: 5
私は以下のようにしてみました。
#define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR);
しかし、ご推察の通り、引用符の中のVARは置換されず、文字列リテラル "VAR"として渡されるだけです。そこで、マクロの引数が文字列リテラルそのものになるような方法があれば教えて頂きたいのですが。
どのように解決するのですか?
プリプロセッサーを使う
#
演算子
:
#define CALL_DO_SOMETHING(VAR) do_something(#VAR, VAR);
関連
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 仮想デストラクタはいつ使うのか?
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?
-
[解決済み] C++の複数行の文字列リテラル
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる