C++のポインタを勉強していて、
**typeid().name()**を使って、型情報の表示を行いたいのですが、省略されて出力されてしまいます。
これを省略させずに型情報を以下のように表示させるにはどうすればいいでしょうか?
int
int *
int *
int
と出力するようにしたいです。
実行環境は、
C++17、gcc、VScodeのcode runnerを用いています。
以下ソースコードを示します。
Cpp
1#include <bits/stdc++.h> 2 3using namespace std; 4typedef long long ll; 5 6#define rep(i, n) for (int i = 0; i < (n); i++) 7#define rep2(i, a, b) for (int i = (a); i < (b); ++i) 8#define all(a) (a).begin(), (a).end() 9#define all2(a, b) (a).begin(), (a).begin() + (b) 10#define debug(vari) cerr << #vari << " = " << (vari) << endl; 11 12int main() 13{ 14 int n; 15 int *p; 16 cout << "n: " << typeid(n).name() << endl; 17 cout << "&n: " << typeid(&n).name() << endl; 18 cout << "p: " << typeid(p).name() << endl; 19 cout << "*p: " << typeid(*p).name() << endl; 20 21 return 0; 22} 23
Output
1n: i 2&n: Pi 3p: Pi 4*p: i
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/13 09:43