<div>With a simple class definition like the following, it seems that SIP tries to wrap SIPTransaction::States using a sip generated class, but of course that class is not created for ABCs. I am using the latest SIP snapshot, SIP 4.12.2-snapshot-ecb3e795382e, to test this code. </div>
<div><br><br>class SIPTransaction /Abstract/<br>{<br>  public:<br>        ~SIPTransaction();<br>     virtual SIPTransaction * CreateDuplicate() const = 0;<br>  <br>  protected:<br><br>      enum States {<br>      NotStarted,<br>
      Trying,<br>      Proceeding,<br>      Cancelling,<br>      Completed,<br>      Terminated_Success,<br>      Terminated_Timeout,<br>      Terminated_RetriesExceeded,<br>      Terminated_TransportError,<br>      Terminated_Cancelled,<br>
      Terminated_Aborted,<br>      NumStates<br>    };</div><div><br> virtual void SetTerminated(States newState);<br>};<br><br></div><div><br></div><div>Offending generated code:</div><div><br></div><div>static sipEnumMemberDef enummembers_SIPTransaction[] = {<br>
    {sipName_Cancelling, sipSIPTransaction::Cancelling, 241},<br>    {sipName_Completed, sipSIPTransaction::Completed, 241},<br>    {sipName_NotStarted, sipSIPTransaction::NotStarted, 241},<br>    {sipName_NumStates, sipSIPTransaction::NumStates, 241},<br>
    {sipName_Proceeding, sipSIPTransaction::Proceeding, 241},<br>    {sipName_Terminated_Aborted, sipSIPTransaction::Terminated_Aborted, 241},<br>    {sipName_Terminated_Cancelled, sipSIPTransaction::Terminated_Cancelled, 241},<br>
    {sipName_Terminated_RetriesExceeded, sipSIPTransaction::Terminated_RetriesExceeded, 241},<br>    {sipName_Terminated_Success, sipSIPTransaction::Terminated_Success, 241},<br>    {sipName_Terminated_Timeout, sipSIPTransaction::Terminated_Timeout, 241},<br>
    {sipName_Terminated_TransportError, sipSIPTransaction::Terminated_TransportError, 241},<br>    {sipName_Trying, sipSIPTransaction::Trying, 241},<br>};<br></div><div><br></div><div>Of course, commenting out the code under protected stops it from being generated, and causing compiler errors.</div>