composite types and std::swap

Discussion in 'C++' started by ma740988, Mar 24, 2007.

  1. ma740988

    ma740988 Guest

    Consider the source snippet.


    # include <iostream>
    struct foo_struct {
    int odx ;
    int pdx ;
    foo_struct ()
    : odx ( 0 )
    , pdx ( 0 )
    {}
    };

    int main()
    {

    foo_struct fs1;
    fs1.odx = 2 ;
    fs1.pdx = 5 ;
    foo_struct fs2;
    std::swap ( fs1, fs2 ) ;
    }

    Ideally I could provide my own copy constructor and assignment
    operator for foo_struct, nonetheless, I'm more interested in whether
    the use of std::swap on the composite ( non-POD types ) makes the
    program ill-formed?

    Thanks in advance.
     
    ma740988, Mar 24, 2007
    #1
    1. Advertisements

  2. * ma740988:
    No.

    The effect is the same as

    foo_struct temp;
    temp = fs1; fs1 = fs2; fs2 = temp;

    which just uses the compiler-generated copy assignment operator.
     
    Alf P. Steinbach, Mar 24, 2007
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.