[ 
https://issues.apache.org/jira/browse/STDCXX-693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12558018#action_12558018
 ] 

Martin Sebor commented on STDCXX-693:
-------------------------------------

FWIW, I also did most of this as part of the "big valarray rewrite" last year. 
None of it is checked in because it's binary incompatible. That said, I have no 
problem committing improvements to valarray piecemeal, just as long as they're 
compatible, and leaving the breaking changes for last (5.0).

Since it sounds like we've both made some of the same changes it might make 
sense to compare our approaches. If you agree, I suggest you post your patch to 
the list before committing it to give me a chance to review it.

Incidentally, since we're outlining a function in the patch,  it wouldn't be a 
forward compatible change, would it?

> std::valarray::sum does not work correctly for udt that has nonzero default 
> value
> ---------------------------------------------------------------------------------
>
>                 Key: STDCXX-693
>                 URL: https://issues.apache.org/jira/browse/STDCXX-693
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 26. Numerics
>    Affects Versions: 4.2.0
>            Reporter: Travis Vitek
>            Priority: Minor
>
> #include <cassert>
> #include <valarray>
> struct S
> {
>     // this ctor should not be required
>     S ()
>         : value (21)
>     {
>     }
>     S (int v)
>         : value (v)
>     {
>     }
>     S (const S& rhs)
>         : value (rhs.value)
>     {
>     }
>     S& operator+= (const S& rhs)
>     {
>         value += rhs.value;
>         return *this;
>     }
>     int value;
> };
> int main ()
> {
>     const std::valarray<S> b (S (10), 1); // 10 elements with value 1
>     assert (b.sum ().value == 10);
>     return 0;
> } 
> The wording in the standard seems to imply that the returned value should be 
> a copy of one of the elements, and that op+= should be called on all of the 
> other elements. If this is the case, then this an additional issue that would 
> be detectable in user code [the user can count how many times the op+= is 
> invoked]. This issue may apply to the min() and max() methods as well.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to