0

I get the error:

../ConcreteRequest.h:23:49: error: passing ‘const std::map, std::basic_string >’ as ‘this’ argument of ‘std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::basic_string; _Tp = std::basic_string; _Compare = std::less >; _Alloc = std::allocator, std::basic_string > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::basic_string; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::basic_string]’ discards qualifiers [-fpermissive]

#ifndef CONCRETEREQUEST_H
#define CONCRETEREQUEST_H
#include "RequestFactory.h"
#include "Request.h"
#include "MasterFile.h"
#include <map>
#include <string>
#include <iostream>

class ConcreteRequest : public RequestFactory
{
  Request *createRequest(const std::map<std::string,std::string> &input) const
  {
    std::cout << "==Starting createRequest==" << std::endl;
    Request *pRequest;

    if (input["dataset"] == "masterfile")
      {
        pRequest = new MasterFile(input);
      }

    std::cout << "==Finishing createRequest==" << std::endl;
    return pRequest;
  }
};
#endif

This is for the if comparison. Why?

deadpickle
  • 115
  • 2
  • 15

0 Answers0