));
  Result operator()(<strong>Arg</strong> x) const;
};
</pre>
  </blockquote>

  <p>Note that the argument to <tt>operator()</tt> is exactly the same type
  as the argument to the wrapped function. If this is a value type, the
  argument will be passed by value and copied twice.
  <tt>pointer_to_binary_function</tt> has a similar problem.</p>

  <p>However, if we were to try and eliminate this inefficiency by instead
  declaring the argument as <tt>const&nbsp;Arg&amp;</tt>, then if Arg were a
  reference