On Tue, 15 May 2007 04:49:02 -0700, kushwaha wrote: > Lionel B wrote: >> >> On Tue, 15 May 2007 03:47:03 -0700, kushwaha wrote: >> >>> hi all.. >>> >>> Following is the part of a code giving error with gcc 3.4.6 which >>> previously compiled with gcc 3.2.3. >> >> Are you sure...? Compiling your code (gcc 4.1.2) I get: >> >> error: ‘class HString_Key’ has no member named ‘mpcCallId’ error: >> ‘class HString_Key’ has no member named ‘mulHashId’ >> >> from these lines: >> >> key.mpcCallId = apcCallId; >> key.mulHashId = apcHashId; >> >> and sure enough, your class template HString_Key does not contain those >> members. I don't see how this could have compiled with gcc 3.2.3. >> Didn't you mean: >> >> key.mpcId = apcCallId; >> key.mulId = apcHashId; >> >> in Equal_to_HString_Key::Equal_to_HString_Key(...) ? Compiles ok for me >> with this change. >> >> [...] >> >> -- >> Lionel B ^^^^^^^^ Please don't quote sigs. Please don't top-post (rearranged) > yes.. the code is correct ... for some slightly strange value of "correct" ;) > and getting compiled on gcc 3.2.3. i just want > to know is there is any option to avoid that strict checking on gcc > 3.4.6 as i can't change the code. Well, the offending template doesn't actually appear to be used in the code, so I guess gcc 3.2.3 just ignored it; I've had a brief look if there are any flags for gcc that might suppress checking of templates that are never instantiated, but couldn't find anything that works. Sorry, -- Lionel B