Article ID: 128344
Article Last Modified on 7/5/2005
eTest = operator+( eTest1, eTest2 );-or-
eTest = Test( (int)eTest1 + eTest2 );where eTest, eTest1 and eTest2 are of type enum Test{}.
/* Compiler options needed: None.
*/
enum Test { ONE, TWO, THREE };
Test operator+(Test eTest, Test eTest2)
{
Test eRet = Test(int(eTest) + int(eTest2));
return eRet;
}
void main()
{
Test eTest=ONE, eTest2=TWO;
eTest = eTest + eTest2; // C2593 error
}
/* Compiler options needed: None.
*/
enum Test { ONE=1, TWO, THREE };
template<class T> class CFix
{
T m_fix;
public:
CFix(T eFix) { m_fix = eFix; }
operator T() { return m_fix; }
};
Test operator+(CFix<Test> eTest, Test eTest2)
{
Test eRet = Test(int(eTest) + int(eTest2));
return eRet;
}
void main()
{
CFix<Test> eTest=ONE, eTest2=TWO;
eTest = eTest + eTest2;
}
Additional query words: kbVC400bug cpp 9.00 8.00 8.00c 10.00 10.10 10.20
Keywords: kbbug kbfix kbvc500fix kbcpponly kbcode kbcompiler KB128344