I am having a problem in wrapping a protected enum declared in a child class. For some reason, the sip code below is converting Element::OptionalCRLF parameters to int, which results in a compiler error. If anyone has an idea of what is wrong in my wrapped code, please let me know.

sippyptlibPHTMLFormField.cpp
.\sippyptlibPHTMLFormField.cpp(53) : error C2664: 'PHTML::FormField::FormField(const char *,const char *,PHTML::ElementInSet, PHTML::Element::OptionalCRLF,PHTML::DisableCodes,const char *)' : cannot convert parameter 4 from 'int' to 'PHTML::Element::OptionalCRLF' Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)

class PHTML
{
  public:
    enum ElementInSet {
      InHTML,
      NumElementsInSet
    };

    enum DisableCodes {
      Enabled,
      Disabled
    };

    PHTML(
const char * cstr ///< C string representation of the title string.
    );

    class Element {
      public:
        virtual ~Element();
      protected:
        enum OptionalCRLF { NoCRLF, OpenCRLF, CloseCRLF, BothCRLF };
        Element(
          const char * nam,
          const char * att,
          PHTML::ElementInSet elmt,
          PHTML::ElementInSet req,
          OptionalCRLF opt
        );
        virtual void Output(PHTML & html) const;
        virtual void AddAttr(PHTML & html) const;
    };

  class FieldElement : PHTML::Element {
      protected:
        FieldElement(
          const char * nam,
          const char * attr,
          PHTML::ElementInSet elmt,
          OptionalCRLF opt,
          PHTML::DisableCodes disabled
        );
        virtual ~FieldElement();
        virtual void AddAttr(PHTML & html) const;
    };
};

Offending C++ Code - as you can see 'int a3' should actually be PHTML::Element::OptionalCRLF. I am not sure why sip is treating this as an int.

sipPHTML_FormField::sipPHTML_FormField(const char *a0,const char *a1,PHTML::ElementInSet a2,_*int a3*_,PHTML::DisableCodes a4,const char *a5): PHTML::FormField(a0,a1,a2,a3,a4,a5), sipPySelf(0)
{
    memset(sipPyMethods, 0, sizeof (sipPyMethods));
}

_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to