Copied from
http://www.nabble.com/Re%3A--VOTE--release-stdcxx-4.2.0-%28candidate-7%29-p13372451.html:
...I tried Intel 10.0 and found another test that gave a compiler error. I didn't investigate it in great detail but it looks like a problem
in the test rather than a compiler bug.
/home/mbrown/stdcxx-4.2.0/tests/regress/26.valarray.transcend.stdcxx-315.cpp(43): error: implicitly generated assignment operator cannot copy:
const member "S::self"
struct S {
^
detected during:
implicit generation of "S &S::operator=(const S &)" at line 1033 of "/home/mbrown/stdcxx-4.2.0/include/valarray"
instantiation of "std::valarray<_TypeT> std::abs(const std::valarray<_TypeT> &) [with _TypeT=S]" at line 78
2007-10-29 Travis Vitek <vitek@roguewave.com>
STDCXX-617bug in Intel C++ 10.0.025 that does not consider const copy-
assignment operator before attempting to generate one.
Index: 26.valarray.transcend.stdcxx-315.cpp
===================================================================
— 26.valarray.transcend.stdcxx-315.cpp (revision 589749)
+++ 26.valarray.transcend.stdcxx-315.cpp (working copy)
@@ -48,7 +48,7 @@
~S () { pass = pass && this == self; }
operator double () const { pass = pass && this == self; return 1.0; }
+ void operator=(const S &s) { pass = pass && &s == s.self && this == self; }
S operator- () const { pass = pass && this == self; return *this; }