C2440 error in VisualStudio 2019



  • Types kp:Input Field/Button/Timer* are not converted into ReturnClass*. What's wrong? I don't understand.

    template <class ReturnClass>
    static ReturnClass* createObject(kp::ObjectType type)
    {
        switch (type)
        {
            case kp::ObjectType::InputField:
                return createInputField();
    
        case kp::ObjectType::Button:
            return createButton();
    
        case kp::ObjectType::Timer:
            return createTimer();
    
        default:
            return nullptr;
    }
    

    }



  • If the type is not known at the compilation stage, different types cannot be returned. Temples are powerless.

    You can do that.

    variant<TypeA*, TypeB*, void*> createObject(kp::ObjectType type)
    


Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2