|
|
|
|
 请教模板使用问题 - shifangziji [ 2006-08-30 10:12 | 1,429 byte(s)]
 Re: 请教模板使用问题 - shifangziji [ 2006-08-30 10:17 | 59 byte(s)]
 Re: 请教模板使用问题 - Atu [ 2006-08-30 16:48 | 84 byte(s)]
 Re: 请教模板使用问题 - shifangziji [ 2006-08-30 17:19 | 86 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
定义如下:
template <int aNumMoveBits>
class CBitModel
{
public:
UINT32 Probability;
void UpdateModel(UINT32 symbol)
{
if (symbol == 0)
Probability += (kBitModelTotal - Probability) >> aNumMoveBits;
else
Probability -= (Probability) >> aNumMoveBits;
}
public:
void Init() { Probability = kBitModelTotal / 2; }
};
template <int aNumMoveBits>
class CBitEncoder: public CBitModel<aNumMoveBits>
{
public:
void Encode(CRangeEncoder *encoder, UINT32 symbol)
{
encoder->EncodeBit(Probability, kNumBitModelTotalBits, symbol);
UpdateModel(symbol);
}
UINT32 GetPrice(UINT32 symbol) const
{
return g_PriceTables.StatePrices[
(((Probability - symbol) ^ ((-(int)symbol))) & (kBitModelTotal - 1)) >> kNumMoveReducingBits];
}
};
现在这个变量(UINT32 Probability;)在子模板里使用时编不过。用gcc编的,它说下面的使用没有定义。
请问到底可不可以这样用?
|
|
|
----
———當我醒來時 ,我已不是我自己…
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
是UINT32 Probability中的Probability没有定义。这在基类中有定义,为什么不能直接拿来用呢?
|
|
|
----
———當我醒來時 ,我已不是我自己…
|
|
[Original]
[Print]
[Top]
|
|
|