title: Specializing std::optional
body: <p>Will it be possible to specialize <code>std::optional</code> for user-defined types? If not, is it too late to propose this to the standard?</p>
  
  <p>My use case for this is an integer-like class that represents a value within a range. For instance, you could have an integer that lies somewhere in the range [0, 10]. Many of my applications are sensitive to even a single byte of overhead, so I would be unable to use a non-specialized <code>std::optional</code> due to the extra <code>bool</code>. However, a specialization for <code>std::optional</code> would be trivial for an integer that has a range smaller than its underlying type. We could simply store the value <code>11</code> in my example. This should provide no space or time overhead over a non-optional value.</p>
  
  <p>Am I allowed to create this specialization in <code>namespace std</code>?</p>