Date
2010-10-14.00:00:00
Message id
5188

Content

In Pittsburgh, we accepted the resolution of library issue 1137, to add a sentence 3 to [cmplx.over]:

All the specified overloads shall have a return type which is the nested value_type of the effectively cast arguments.

This was already true for four of the six functions except conj and proj. It is not completely unreasonable to make proj return the real value only, but the IEC specification does call for an imaginary part of -0 in some circumstances. The people who care about these distinctions really care, and it is required by an international standard.

Making conj return just the real part breaks it horribly, however. It is well understood in mathematics that conj(re + i*im) is (re - i*im), and it is widely used. The accepted new definition makes conj useful only for pure real operations. This botch absolutely must be fixed.