title: initializing argument 1 of... [-fpermissive]
body: <p>I'm new to c++ and using eclipse cdt on ubuntu and getting this error in my header file:</p>
  
  <pre><code>initializing argument 1 of 'std::map&lt;basic_string&lt;char&gt;,Supplier*&gt; Engine::processSupplierFile(char*)' [-fpermissive]
  </code></pre>
  
  <p>I already searched for this error and found this:
  <a href="https://stackoverflow.com/questions/14224421/why-am-i-getting-error-initializing-argument-1-of-itemitemint-fpermissi">Why am I getting error: initializing argument 1 of &#39;Item::Item(int)&#39; [-fpermissive] in Eclipse when I try to compile my C++ code?</a></p>
  
  <p>but it didn't have any answers about the header file error.</p>
  
  <p>here is the code of the header file: (Supplier is a simple object containing two string and a double)</p>
  
  <pre><code>#ifndef Engine_H_
  #define Engine_H_
  
  #include "Ingredient.h"
  #include "Product.h"
  #include "Supplier.h"
  
  #include &lt;stdio.h&gt;
  #include &lt;iostream&gt;
  #include &lt;string&gt;
  #include &lt;sstream&gt;
  #include &lt;fstream&gt;
  #include &lt;map&gt;
  #include &lt;algorithm&gt;
  #include &lt;vector&gt;
  
  using namespace std;
  
  class Engine {
  public:
      Engine();
      virtual ~Engine();
      string fileToString(string fileName);
      void processLoggerFile (char* fileName);
      string fileToString(char* fileName);
      vector&lt;Product&gt; processProductsFile(char* fileName, const map&lt;string, Ingredient&gt; &amp;cheapestIngredients); 
      map&lt;string, Supplier*&gt; processSuppliersFile(char* fileName); // this line produces the error
      map&lt;string, Ingredient&gt; findCheapestPrices(vector&lt;Supplier&gt; &amp;suppliers);
      map&lt;string, Product*&gt; createMenu(vector&lt;Product&gt;&amp; products);
      void supplierPriceChange(vector&lt;Product&gt;&amp; products, map&lt;string,Product*&gt;&amp; menu,vector&lt;Supplier&gt;&amp; suppliers, map&lt;string, Ingredient&gt; cheapestIngredients, string supName, string ingName, double newPrice);
  };
  
  #endif /* Engine_H_ */
  </code></pre>
  
  <p>Does anyone knows what is causing this error?
  thanks in advance</p>
  
  <p>EDIT (supplier.h added)</p>
  
  <pre><code>/*
   * Supplier.h
   *
   *  Created on: Nov 10, 2013
   *      Author: tom
   */
  
  #ifndef SUPPLIER_H_
  #define SUPPLIER_H_
  
  #include &lt;string&gt;
  
  using namespace std;
  
  class Supplier {
  public:
      Supplier();
      Supplier(const Supplier&amp; supplier);
      Supplier(string supName, string ingName, double price);
      Supplier&amp; operator=(const Supplier&amp; supplier);
      virtual ~Supplier();
      string getSupplierName() const;
      string getIngredientName() const;
      double getPrice() const;
      void setPrice(double price);
  
  private:
      string _ingredientName;
      string _supplierName;
      double _price;
  
  };
  
  #endif /* SUPPLIER_H_ */
  </code></pre>