Index: status/explicit-failures-markup.xml =================================================================== --- status/explicit-failures-markup.xml (revision 66834) +++ status/explicit-failures-markup.xml (working copy) @@ -2547,24 +2547,52 @@ - + +

This failure is caused by a compiler bug, and as far as we can + tell, can't be worked around in the library, although we think + the library might be made safer with respect to this bug.

+ +

Specifics: the following simple test fails when it should succeed.

+
+                #include <cassert>
+
+                int const x = 0;
+                struct A
+                {
+                   A(int const& y)
+                   {
+                     assert(&x == &y);
+                   }
+                };
+
+                int main()
+                {
+                    A a(x);  // direct initialization works fine
+                    A b = x; // copy initialization causes x to be copied before it is bound
+                }
+                
+ + The possible safety enhancement would be to cause the constructor + in question to be explicit for optional<T const&>; that + would prevent copy initialization. +
- + - + - +