2

を使用してMatrixクラスを作成しました

static_assert(std::is_arithmetic<T>::value,"");

テンプレートタイプが算術タイプであるかどうかを確認します。だから私は

Matrix<char> matrix1(3,3); // ctor takes number of rows and columns

そしてそれは動作します。static_assert関数はchar型では呼び出されません。正常ですか?charは算術型のように見えますか?

4

2 に答える 2

5

参考から:

Tが算術型(つまり、整数型または浮動小数点型)の場合、trueに等しいメンバー定数値を提供します。その他のタイプの場合、値はfalseです。

charは積分型なので、答えはtrueです。aに収まる小さな整数が、特定の文字エンコード空間のコードポイントとして解釈charされることが多いという事実は二次的なものです。

于 2012-08-18T11:35:22.547 に答える
0

はい、他の整数と同じように通常の整数です(int、long、short)。これは、C(++)で算術演算に使用する一般的な方法でもあります。たとえば、数字を対応する印刷可能な文字に変換する場合は、次のように記述できます。

char printable = digit + '0';
于 2012-08-18T11:44:08.847 に答える