title: operator+ doesn't work when both parameters need to be promoted
body: <p>I have a class named 'Card' and a class named 'CardDeck', with the following promotion defined in 'CardDeck.h':</p>
  
  <pre><code>CardDeck(Card card){cards.push_back(card);}
  </code></pre>
  
  <p>CardDeck has a friend operator+:</p>
  
  <pre><code>friend CardDeck operator+(const CardDeck, const CardDeck);
  </code></pre>
  
  <p>which works just fine for:</p>
  
  <pre><code>CardDeck+CardDeck
  CardDeck+Card
  Card+CardDeck
  </code></pre>
  
  <p>but it won't work for Card+Card. I get:</p>
  
  <pre><code>"no match for 'operator+' (operand types are 'Card' and 'Card')"
  </code></pre>
  
  <p>Why aren't the Cards being promoted to CardDecks in that case?
  I also tried overriding operator+ with:</p>
  
  <pre><code>friend CardDeck operator+(const Card, const Card);
  </code></pre>
  
  <p>but that doesn't work either.
  any hint why?</p>
  
  <p>Thanks!</p>