a24_getTyp
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* getTyp (コード片シリーズ#2)
-(by [[K]], 2024.06.17)
** (1)
-変数の型を取りたい。以下みたいなことをやりたい。
#define Typ_i int
#define Typ_d double
#define Typ_s String
autoPrint(i); // int.
autoPrint(d); // double.
autoPrint(s); // String.
-以下はコード片。
#define ACat_Helper(x, y) x##y
#define ACat(x, y) ACat_Helper(x, y)
#define ACat3(x, y, z) ACat(ACat(x, y), z)
#define ACat4(a, b, c, d) ACat(ACat(a, b), ACat(c, d))
#define autoPrint(x) ACat(autoPrint_, getTyp(x))(x)
void autoPrint_int(int x) { printf("%d", x); }
void autoPrint_double(double x) { printf("%f", x); }
void autoPrint_String(char *x) { printf("%s", x); }
#define getTyp(x) ACat(Typ_, x)
終了行:
* getTyp (コード片シリーズ#2)
-(by [[K]], 2024.06.17)
** (1)
-変数の型を取りたい。以下みたいなことをやりたい。
#define Typ_i int
#define Typ_d double
#define Typ_s String
autoPrint(i); // int.
autoPrint(d); // double.
autoPrint(s); // String.
-以下はコード片。
#define ACat_Helper(x, y) x##y
#define ACat(x, y) ACat_Helper(x, y)
#define ACat3(x, y, z) ACat(ACat(x, y), z)
#define ACat4(a, b, c, d) ACat(ACat(a, b), ACat(c, d))
#define autoPrint(x) ACat(autoPrint_, getTyp(x))(x)
void autoPrint_int(int x) { printf("%d", x); }
void autoPrint_double(double x) { printf("%f", x); }
void autoPrint_String(char *x) { printf("%s", x); }
#define getTyp(x) ACat(Typ_, x)
ページ名: