Returning an enum, can't understand the line of code
<p>I am studying the code from an existing project and I read this piece of code:</p>

<pre><code>enum Score {
  SCORE_ZERO,
  SCORE_ENSURE_INTEGER_SIZE_P = INT_MAX,
  SCORE_ENSURE_INTEGER_SIZE_N = INT_MIN
};

inline Score make_score(int mg, int eg) {
  return Score((mg &lt;&lt; 16) + eg);
}
</code></pre>

<p>I have an enumeration called <code>Score</code> and a function that returns a <code>Score</code>. I don't understand what the last line means. Does it "create" and then return a <code>Score</code> enumeration passing an integer to it? Where does the integer go? How is it saved?</p>