title: Why do several of the standard operators not have standard functors?
body: <p>We have:</p>
  
  <ul>
  <li><code>std::plus</code>  (<code>+</code>)</li>
  <li><code>std::minus</code> (<code>-</code>)</li>
  <li><code>std::multiplies</code> (<code>*</code>)</li>
  <li><code>std::divides</code> (<code>/</code>)</li>
  <li><code>std::modulus</code> (<code>%</code>)</li>
  <li><code>std::negate</code> (<code>-</code>)</li>
  <li><code>std::logical_or</code> (<code>||</code>)</li>
  <li><code>std::logical_not</code> (<code>!</code>)</li>
  <li><code>std::logical_and</code> (<code>&amp;&amp;</code>)</li>
  <li><code>std::equal_to</code> (<code>==</code>)</li>
  <li><code>std::not_equal_to</code> (<code>!=</code>)</li>
  <li><code>std::less</code> (<code>&lt;</code>)</li>
  <li><code>std::greater</code> (<code>&gt;</code>)</li>
  <li><code>std::less_equal</code> (<code>&lt;=</code>)</li>
  <li><code>std::greater_equal</code> (<code>&gt;=</code>)</li>
  </ul>
  
  <p>We don't have functors for:</p>
  
  <ul>
  <li><code>&amp;</code> (address-of)</li>
  <li><code>*</code> (dereference)</li>
  <li><code>[]</code></li>
  <li><code>,</code></li>
  <li>bitwise operators <code>~</code>, <code>&amp;</code>, <code>|</code>, <code>^</code>, <code>&lt;&lt;</code>, <code>&gt;&gt;</code></li>
  <li><code>++</code> (prefix/postfix) / <code>--</code> (prefix/postfix)</li>
  <li><code>sizeof</code></li>
  <li><code>static_cast</code> / <code>dynamic_cast</code> / <code>reinterpret_cast</code> / <code>const_cast</code></li>
  <li>c style casts</li>
  <li><code>new</code> / <code>new[]</code> / <code>delete</code> / <code>delete[]</code></li>
  <li>all of the member function pointer operators</li>
  <li>all of the compound assignment operators.</li>
  </ul>
  
  <p>Is there a reason we don't have those, or is it just an oversight?</p>