sc_int<W> の Wの取得

LSI設計雑記帳にSystemC 2.3での gdbとインストールオプションという記事が。そういえば昔困ったかも・・・?とか思い出した。最後に余談で

sc_int<N> の N を知りたい場合はどうするんだろうか?

なんてことが書いてある。試しにsc_int_base.hを読んだら関数発見。下記のように書けば、Nは取得できます。

#include <systemc.h>

int sc_main(int argc, char *argv[]) {
    sc_int<8> x;
    sc_int<9> y;

    cout << "width of x : " << x.length() << endl;
    cout << "width of y : " << y.length() << endl;
    return 0;
}

ちなみにm_valに相当するのは、m_lenです。