+ These compilers are too antiquated for this library. +
++ These compilers don't quite have the necessary support for this library, it's possible + that they could be made to work if someone cares enough. +
+This is a compiler bug: it sometimes creates an illegal temporary object. + The following code illustrates the bug:
+
+ #include <cassert>
+ const int global_i = 0;
+
+ struct TestingReferenceBinding
+ {
+ void operator=(const int& ii)
+ {
+ assert(&ii == &global_i);
+ }
+ };
+
+ int main()
+ {
+ TestingReferenceBinding ttt;
+ ttt = global_i;
+ }
+
+ This is a compiler bug: it sometimes creates an illegal temporary object. + The following code illustrates the bug:
+
+ #include <cassert>
+ const int global_i = 0;
+
+ struct TestingReferenceBinding
+ {
+ TestingReferenceBinding(const int& ii)
+ {
+ assert(&ii == &global_i);
+ }
+ };
+
+ int main()
+ {
+ TestingReferenceBinding ttt = global_i;
+ }
+
+ 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 @@ -4841,7 +5061,7 @@ for more information.