它的輸出是個字符指針,C++沒有規定固定格式,我用的C-Free格式如下:
它的輸出格式為 [指針][名稱空間][類別][模板]
[指針]:若是指針則輸出P。
[名稱空間]:若是std則輸出St,若是自定義的名稱空間則輸出字符數及它的名字,並在開頭加N,在結尾加E。
[類別]:若是自定義的名稱空間則輸出字符數及它的名字,若內建類型輸出如下:
bool: b
char: c
signed char: a
unsigned char: h
(signed) short (int): s
unsigned short (int): t
(signed) (int): i
unsigned (int): j
(signed) long (int): l
unsigned long (int): m
(signed) long long (int): x
unsigned long long (int): y
float: f
double: d
long double: e
[模板] 類型模板以I開頭,以E結尾;常數模板以L開頭,以E結尾。只有整型變量(int、char之類的)才能做為常數模板,浮點數不行。
相信講了這麼多,樓主一定一頭霧水。且讓小弟舉隅:
類型foo:輸出3foo,因為foo有3個字符。
類型A*:輸出P1A,因為A有1個字符,而此類型為A的指針。
類型std::complex<long double>:輸出St7complexIeE。
類型test::really:輸出N4test6reallyE。
較復雜的情形:
假設定義了以下的物件
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
class Matrix
類型Eigen::Matrix<complex<float>, 3, 3, 0, 3, 3>:輸出N5Eigen6MatrixISt7complexIfELi3ELi3ELi0ELi3ELi3EEE,注意int _Rows = 3是輸出Li3E。
類型Eigen::Matrix<double, -1, -1, 0, -1, -1>:輸出N5Eigen6MatrixIIdELin1ELin1ELi0ELin1ELin1EEE,其中負號是以n輸出。