# Include <iostream> <br/> # include <algorithm> <br/> # include <boost/array. HPP> <br/> # include <algorithm> <br/> # include <string> <br/> # include <vector> <br/> using namespace STD; </P> <p> struct a <br/> {<br/> Enum <br/> {<br/> size = 3 <br/> }; <br/> A () <br/> {<br/> cout <"constructor. "<Endl; <br/> P = new int [size]; <br/>}< br/> A (const A & other) <br/> {<br/> cout <"copy constructor. "<Endl; <br/> P = New int [size]; <br/> for (INT I = 0; I <size; ++ I) <br/> P [I] = Other. P [I]; <br/>}< br/> A (A & Other) <br/>{< br/> cout <"Move constructor. "<Endl; <br/> P = Other. p; <br/> Other. P = 0; <br/>}< br/> A & operator = (const A & Other) <br/>{< br/> cout <"operator =. "<Endl; <br/> for (INT I = 0; I <size; ++ I) <br/> P [I] = Other. P [I]; <br/> return * This; <br/>}</P> <p> A & operator = (A & other) <br/>{< br/> cou T <"& operator =. "<Endl; <br/> P = Other. p; <br/> Other. P = 0; <br/> return * This; <br/>}< br/> ~ A () <br/>{< br/> cout <"destructor. "<Endl; <br/> Delete [] P; <br/>}< br/> int * P; <br/> }; <br/> template <class T> <br/> void myswap (T & A, T & B) <br/>{< br/> t tmp (move (a); <br/> A = move (B); <br/> B = move (TMP ); <br/>}< br/> template <class T> <br/> void myswap2 (T & A, T & B) <br/>{< br/> t tmp = A; <br/> A = B; <br/> B = TMP; <br/>}< br/> int main () <br/>{< br/> A S1, S2; <br/> for (INT I = 0; I <A: size; ++ I) <br/> s1.p [I] = I, s2.p [I] = 100 + I; <br/> cout <Endl; <br/> myswap (S1, S2); <br/> cout <Endl; <br/> // myswap2 (S1, S2 ); <br/> cout <Endl; <br/> for (INT I = 0; I <A: size; ++ I) <br/> cout <s1.p [I] <''; <br/> cout <Endl; <br/> for (INT I = 0; I <:: size; ++ I) <br/> cout <s2.p [I] <''; <br/> cout <Endl; <br/> system ("pause"); <br/> return 0; <br/>}