title: int transforms into int&?
body: <p>code snippet:</p>
  
  <pre><code>// some code
  SDL_Surface* t = Display-&gt;render_text(text);
  int z=100;
  Display-&gt;blit_image(t,z,100);
  // some more code
  </code></pre>
  
  <p>does not compile because z magically changes to an int&amp;,
  file.cpp:48: error: no matching function for call to ‘display::blit_image(SDL_Surface*&amp;, int&amp;, int)</p>
  
  <p>how can this happen?</p>
  
  <p>post scriptum:
  the following works if i put them in place of Display->blit_image(t,z,100)</p>
  
  <p>Display->blit_image(t,z,100,0);</p>
  
  <p>but i am sure that th 4th param is optional because the exact same function works elsewhere without it</p>
  
  <p>pps: i created a minimal-case of my code that behaves as describd above
  it's 3 files:</p>
  
  <p>monkeycard.cpp: <a href="http://pastebin.com/pqVg2yDi" rel="nofollow noreferrer">http://pastebin.com/pqVg2yDi</a></p>
  
  <p>display.hpp: <a href="http://pastebin.com/xPKgWWbW" rel="nofollow noreferrer">http://pastebin.com/xPKgWWbW</a></p>
  
  <p>display.cpp: <a href="http://pastebin.com/nEfFX1wj" rel="nofollow noreferrer">http://pastebin.com/nEfFX1wj</a></p>
  
  <p>g++ -c display.cpp monkeycard.cpp fails with:
  monkeycard.cpp: In member function ‘void monkeycard::messagebox(std::string)’:
  monkeycard.cpp:28: error: no matching function for call to ‘display::blit_image(SDL_Surface*&amp;, int&amp;, int)’
  display.hpp:26: note: candidates are: void display::blit_image(SDL_Surface*, int, int, SDL_Rect*)</p>