stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (STDCXX-334) std::list::swap does not swap containers with different allocators correctly
Date Thu, 10 May 2007 15:47:16 GMT

     [ https://issues.apache.org/jira/browse/STDCXX-334?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Martin Sebor reassigned STDCXX-334:
-----------------------------------

    Assignee: Farid Zaripov

Assigning to Farid -- please close this after adding the test to our regression test suite.

> std::list::swap does not swap containers with different allocators correctly
> ----------------------------------------------------------------------------
>
>                 Key: STDCXX-334
>                 URL: https://issues.apache.org/jira/browse/STDCXX-334
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 23. Containers
>    Affects Versions: 4.1.3
>         Environment: All
>            Reporter: Farid Zaripov
>         Assigned To: Farid Zaripov
>             Fix For: 4.2
>
>
> The program below fails:
> ---------------------------------------------
> #include <list>
> #include <string>
> #include <cassert>
> class Alloc : public std::allocator <char>
> {
> };
> bool operator == (Alloc a1, Alloc a2)
> {
>     return false;
> }
> bool operator != (Alloc a1, Alloc a2)
> {
>     return true;
> }
> int main(int argc, char* argv[])
> {
>     const char src [] = "source string";
>     const char dst [] = "destination string";
>     typedef std::list <char, Alloc> List;
>     
>     Alloc a1;
>     Alloc a2;
>     assert (!(a1 == a2));
>     List src_lst (src, src + sizeof (src) - 1, a1);
>     List dst_lst (dst, dst + sizeof (dst) - 1, a2);
>     src_lst.swap (dst_lst);
>     assert (std::string (src_lst.begin (), src_lst.end ()) == dst);
>     assert (std::string (dst_lst.begin (), dst_lst.end ()) == src);
>     return 0;
> }
> ---------------------------------------------
> Assertion failed: std::string (dst_lst.begin (), dst_lst.end ()) == src, file swap.cpp,
line 37
> This application has requested the Runtime to terminate it in an unusual way.
> Please contact the application's support team for more information.

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


Mime
View raw message