G
Guest
VC 7.1.3088 Bug: When a class defines a template member function taking (T const &),
then an explicit specialization taking a non-const & argument (U) causes a C1001 at msc1.cpp line 2701.
The following short program duplicates this error.
Compile it in Debug mode (all optimizations disabled), with "Not using precompiled headers".
Class C defines F as a template member function taking (_T const &).
It then specializes F taking a char.
a) If the specialization signature is (char const &), it compiles OK.
b) If the specialization signature is (char) or (char &), it fails with a C1001.
VC6 and VC7.0 compile (b) without any problems.
then an explicit specialization taking a non-const & argument (U) causes a C1001 at msc1.cpp line 2701.
The following short program duplicates this error.
Compile it in Debug mode (all optimizations disabled), with "Not using precompiled headers".
Class C defines F as a template member function taking (_T const &).
It then specializes F taking a char.
a) If the specialization signature is (char const &), it compiles OK.
b) If the specialization signature is (char) or (char &), it fails with a C1001.
VC6 and VC7.0 compile (b) without any problems.