のメモリ消費説明 -私はメタプログラミングの本の中で、この作業コード見つかっこのメタプログラミング
template<unsigned long N>
struct binary
{
static unsigned const value = binary<N/10>::value *2 + N%10;
};
template<>
struct binary<0>
{
static unsigned const value = 0;
};
int main()
{
unsigned x = binary<101010>::value;
cout << x;
}
私の質問をされた - value
ためのメモリが割り当てられているの?それはデータセグメントに割り当てられていますか?
また、このコードでは、再帰と同様の方法で結果を計算するテンプレートのインスタンシエーションのカスケードが生成されます。つまり、各テンプレートのインスタンス化では、データセグメントに新しいunsigned
が割り当てられますか?