From 6e132bcc220d4cd28a25411e6291dbbc1b984e6b Mon Sep 17 00:00:00 2001
From: "Bradley M. Small" <bms@bmsLaptop.small>
Date: Sat, 9 Nov 2013 19:25:43 -0500
Subject: [PATCH] initial push

---
 c++/example2.txt    |   1 +
 c++/mytest          | Bin 0 -> 14216 bytes
 c++/mytest.cpp      |  20 +++++++++++++
 c++/testvector      | Bin 0 -> 38493 bytes
 c++/testvector.cpp  |  69 ++++++++++++++++++++++++++++++++++++++++++++
 c++/testvector2     | Bin 0 -> 21943 bytes
 c++/testvector2.cpp |  68 +++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 158 insertions(+)
 create mode 100644 c++/example2.txt
 create mode 100755 c++/mytest
 create mode 100644 c++/mytest.cpp
 create mode 100755 c++/testvector
 create mode 100644 c++/testvector.cpp
 create mode 100755 c++/testvector2
 create mode 100644 c++/testvector2.cpp

diff --git a/c++/example2.txt b/c++/example2.txt
new file mode 100644
index 0000000..2a8c16d
--- /dev/null
+++ b/c++/example2.txt
@@ -0,0 +1 @@
+Writing this to a file
diff --git a/c++/mytest b/c++/mytest
new file mode 100755
index 0000000000000000000000000000000000000000..e8e418ddb6388371aa793da557f3454e49bc75ee
GIT binary patch
literal 14216
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

literal 0
HcmV?d00001

diff --git a/c++/mytest.cpp b/c++/mytest.cpp
new file mode 100644
index 0000000..4e33d73
--- /dev/null
+++ b/c++/mytest.cpp
@@ -0,0 +1,20 @@
+#include <iostream>
+#include <fstream>
+using namespace std;
+
+class File_Type {
+public:
+	void doit() {
+	}
+//private:
+	fstream fs;
+};
+
+int main (void) {
+	File_Type l_file;
+	l_file.fs.open ("example2.txt",ios_base::out);
+	l_file.fs << "Writing this to a file" << endl;
+	l_file.fs.close();
+;
+	return 0;
+}
diff --git a/c++/testvector b/c++/testvector
new file mode 100755
index 0000000000000000000000000000000000000000..da2e15fec86a91f94f5a5134e8fcad8812be2cc3
GIT binary patch
literal 38493
zcmchA4`5W)mG_(cfv6DzA|hgqG*Yk-lMoOT>i`*?-~`izSgPn`m<$ljADT=MC{#4T
zWel;bqRY1WHEmr#Y}ra%YpGI*k|nesZDW^Jv=p-z?SxQ^7TwgM+21+$-1jdtDXZ-F
zbaLK3=bm%VJ@?#m&%JM$cdsw7AjRV`^p#?K!Jtz1g<eLfzlM=@3l{}9%g8XiMz(Re
zF$|b=e7sB{sO~iE5YZZDNWE0RG`dd_M2c742%MlwhK5>0g4CXMdF58YoeNb_L-d3Z
z#7DaB68f%%m5kRggA~HGl9i&nZ2H6M5ns3Pbqk+{S)#v&x_=~wJ`;pKA;pUlmAwRv
zBK~VZ-E8Sw(JH#nDO4453cY-zVVYDlp{izl5qzZQ*<M=DYig>O%`Cj8rfOPEbzRe%
zX=`T9oHnyCx3NCAfc4LUK(gIUiz-+&b%)v+j}NIb1|KpV(O35uPVRXBg^ClKJ;zi2
zHS_0@EnVHCK)Vc|OYs?v&xQD0j1TeCH5MO|K^L_{7qyv*&p3Q8z=zto1fQWU?GvP%
zb}8!P`S=WXF^)ue1U~2CbCJ+w__;(nQ<>V-enVPa>B(Xh2~WCR`O)d~Cj0&)FlKw^
z{I$h*KL=FO>x)o|`tQC1keCSnn<V(D5RmN_g7WoA@c)pc-A>d`)NXx}`iGL>uS|m9
zmjq8^n~jhATAHN46n3)Rl~F!{Pa^&APlBiUnW#QFOCo%A5;>P8(eu_M_@|P{-zN3D
zGrefZx_*mW(x=jepNIORFq1k;D!H=qM8lXSa!$GG8<^LP(W>z0KTmUcrV%V&ToSB`
zG(=WZH%223i%aI$)YnB8hnCeuj9_p@ZGBy^F&b)!27^X$;p$+S)SF)uYHW-&D)z+8
zx0OfpuMGyHD;w(X2`&p&1w%D8_2Jb<5QKu+!Lnt+XhS3ttgdT}KzyjKD%cQN7ODx=
zg(J&K!8^;WQdeIUfrQ3Ld0w!r9Et?PYeJ~aq9Jcld308FeIr*XEUv4L7Ula?J2oNJ
zb>W6cZKN(*dUImoB6b;iSQiY3qT!WffHiA^t0E1J^>v||>gd|w>O9uJFkIgh<(BJf
z8hzEctGlO`DK(A75T74j8EQcPLe<g6;;_$G2HbS?pgJ6^Z$!64wZ-AZL0|cdVCl_a
zB{5Q0RZ|>3JKn{?#d+YK2~&`jElX8J&aRVaOm`91qdt@_C@Zfo5BiczbTniR3D+;k
z)8kwdsap|U8H_YE)HkTE4H}&JYH+G*N>`IJ)+#^5-HLEH*hr;(BUn*)Pc?Kbi!?UX
zMyOg?+?9tu6pgH@hW&#?5dW+VRo59e&7U8fo||Xf6eylIKUk1kkUPVezhueWdBwr}
z-02FvWC^P9Dw={xj%kQ11#vwE>j{0-I-zKUrB6CO^j|9CzQ@=OCLOOzC#}U&lx`eT
zf|&jj8@*|KHI|b!<870kf;x(yTK@NE?#2?8YP=^r(J2pOc}g)plKMS?N~*?dE9s^$
zJ>O}4qczmLBo5HpM(yY;!-f~pOv<w1?Q7jQ8{VEjWZUre^>eZfuX6}$AkT)UbyZ)p
zY<OCW_2sqUX^q#H--f3(R$rwyJmnDjT4KY~x~{KE8=l5cUn^~RTIcn(%7(YE2WxD2
zohuN}MjPIqn{2k>bzVdDx7zSJ_aXdt8=mqaeYM;0lq2cO-+VG7{s>0g-`tt8-!KMd
zTs=427`SRG{*JuDi#sZ>r0Tsr1Gui5NM&-7-fk|Br!u)lZwHr0Q<+?%cNdq>r!u)<
zZ#$P$s7&tHyOqlydQm1<>D|cX_oz%R(z}YwC#al3<w`EUNo8`0-cl~VPGxe1UN4t_
zOJ#C_-aIb<lFF3+^=5PVB`VX9_hxbVc`A>fvccsaQJIFm_teKgT=hLF(~$S}aQQn_
zrlIcb=JGeFOheq;!R3dkOhendi^~sEnTD>n9p(H#6~|t_(;s`&-+cU3>Ehz9j_m1P
z!{7B{9)qr_BfLiZkEnQh>sA^Ye`|W|#%#mCsUw;)(9MIi)qd^Xhk>o|PumUPZ|)!A
zkG*wI${qW6qdjIieaAi`4fKq>Vk6;pQ%To<u|E~{{jrz)FP^y3@9Fl(4)|aGxC#8v
zQ(gb2-$ph6o5H{GhF<i?Xc|=k&iL10pgRtvzXFu!FZ;<~{LMFX%t3|dWu^+FD)t>*
z2<>8T4Rqhp`&F>?uEw9OTS-K@|GtwusI9h5G~9b>VEwVK_!)Q<a5ThJ{5%}Q-}Wd~
zF|n@@;bA8DHtzKZ<9=qW*yyZww^SpRKfpQtZN9C0$!Q6(Rk3V!vdmH}TdBq_#nQf)
z{F)GVD3*37OS)odry3g+%dWlT`h>VzvFviP{1!6-%Iu;V3l&SpUYZ?*_%C$I-&WD#
zWcik2>7W{yD3<QMXqj0$6-&31rADz}fV<+ySr1>&UYcWs_(#Rk<7AnwSbC_&55e*R
zYC{=wM1G8Zp~xeGDi5Jb>`3qTSmu88Xd^MM0k*H&A0q@Cas?rlC`3EexRnq$DFhqA
zM~ImU(Lpr|32~J|a0fn1h%pMm>WwA@JQ=N+>WzVV8mDzUK^=`9>BFC{c=!xl>Ap_#
zz1#2DPp*jRmKED@Cf3y7yy1+e$#>s|{(%9w`kZ}Pw^SPOd4C%iczzdV&t59-ql7ws
zCvf|E7J<471EHu?-1lJts9sQi!J_w)pnYiGh(8P$miA&B`u(w{Q~p-pDJSNR{X943
zE-ojX{IL!3Skv)+<Vf+yA+xpOcr44`S`qihQosywKq>JuTIk~C+kt)_=+<$JYBh>l
zv-ciCtl8IruEc--;lMyq>}@j0MBMIujiL|=|AIp77~Ne!Xxdd!VJ`}ZL0PxYT{>7t
z^rZ)l-~;7ID*>WhA!(7-{F29opWxQ6*VOI`G$-1%{MDx2a8tWlLTl}^ht$q)C>nL>
za>A|4R>IpY^?|9&BWOu<>4#sKmij92%2NLcw8QT6NSd*!W8}7umX7FW_NL<OMVWm8
zm}ET2tX(9KdZDOGi0ZU*h4KZ=oDJJy=dBohe0;d)C^!r=z#sFq^CX?S2kjb)+7+h_
zI7qu*fSEC2D-eHt?ZQ?IT1!XM^$OJ$AC7Wy?B6u&D`1(shxuAd5FLH{0<jbR*sn?D
z_kc#HhVLeFUpfbSU(4~9-vK$h%XgGjXsbBtSDYQfb~$N75v{ePT{XkfXpWQqT9L0o
zs=v7-qi+<;>`PH|_8GEpbLSGc-`qQ_NeiR&Ls&oQwFr{boRg_zQeHACG^@tZtO66<
zv@1S?qG;?TF1Gry<^tUc4C^+Dh*FU<_`dNJX#_#XAqXiXWVBLl9HI%&UbB5Q#i2(j
zNe1+0`Decr%~u6(4#<jA(%u^+Qq{}ww+T<IG^1}KW6{zuT4rJ|G7oo~^*n6$Z*a>b
zoE_zTMD<@N{RUa#Du_i_nmefr91yi#VT<ODY~3#%wqgiC2wi%*qtfh`Mn2q;cwA_m
zlX21f+((KL5W&3LG_S7VXaU1ZmE#;;`e6{QPxHw<9!v^9v5F&buO9f3?r}4%V?3ZB
zwU%frZw9(AgU0Q)4|J3^?Z!s!ia&;|GO;g>Hz|Xx_!daomz2$`2_ydUD5Af^fm%4h
zVF!BoefDnC`YQCpHI!!`HQRLS*<w<h+K{7ZuZB)9`=`9<j~(=L)+f%cd|f&Eqc%Oi
z>ellvOV24TJ;h7RanI)YNM6t52jAl!u>VC&RnZA|MYt2jhbyy3-)UA>(XSGMcOd$;
zL-2Og+aXg5kf+qhmhY;-M+llbWINpR6aym*-AEl_G*`*sdw3IO({{McE}1CVDnhfQ
zKwG6qB9<kmbd;LJ1~URk=G6-DSwe7lMTW>kgj;y6<ac*LX0KOG?;X!)Vl^<c*11$W
zMr$V&hEx7cl{-}S=R=R#eCJ_bgK9@q2jJ%lJzJr>f$j!54v1+m=HEC76Rs_j5(RVy
zeN<*xi!Fw~%NLg_+-NT0I9Ee^UGbZci~C#i6eI2`Ap12Uq^RcN{$^hsc2gR^`_aHa
zaja9-UIIIj(x}Tqh&vvL{ioRJMb$gflN<gCc$KF@MHwxG1f}UyL}cZ)JEIbagWMVD
z3?-2V`T+7<#Yc)~$!*-vV+~8&?c<^8098t}dfUl`*a#T9uK08RMXE{8c+Gokpm^82
zj3oL5Mj@*vRP%<o(Ub#GPU~ywJcR!RgK#M4p1(j@Xbi2F#K8tVS@j<imb;80ZY|O1
z(+JS<@1LTEIx9H^le9J4T+C>_uwvg2+4#OwgCf4l)L@IQ_|sI!TF@r(+HwHng_db`
zeAyp+o$5V8^_**iW5$#IabB;i_TP23Z^i|4)u5QJq|gk%@1!#R&)0CU`H9NgA6>~a
z_6aVvZc?<a_`4a<XZC*1twy%|4Wp)ZC{~T%Q|s6_->y=hRwby-_br(<-v^yN)|7cW
z>kD&q#h1}7t+7nxDb7RlAy#>J-or^xfm9{ti&zd^u1)FAGWJ467X2kqd;f*A3hA3D
z!2U6X=f;aM40>BBdLG-fg!?Z$8(%xxVN8tXv#-7Pc9vvr#GWR*(0J<Z?v?KDVS?@v
zk1F?QGWTd?OAX~*ts)1zwN|&qFUX_{rqQE5TaW)tA%QYy)0V$y45Ej#kJ_EepiOT(
z$3m^>K2h`{>49t+pJG95xnI$gHV4J(LIjf(gA#^4wvzq7Nh~_=#(bn)IpI(og23MK
zN(<#*%IO@nN#b{@;=61iXMcFinv`jij#-B_W(T2TNALf&Now<9pT%OvbN4WG=3pMx
znVy&xGm*zEikzjTV`NLIW6U-V9<vw;u#K7BOKX{y%u9a=YA<%Jw4iMy6D%Req`=!1
z_pw?wAA3W3u!ISNeXJ8H0|w|0Th}NK+Q&$p?Kli?&KSx}`&MHd(ZeQu>|;s#(78+B
zt!`Iio4&3zN;)(>*3eJ{>**Wmw+=PhpkrT7%kQX-=_ir7aqp+#jxbjWyp-U5o$aud
zwJ&z(Xm?R}k=k^5;VbIa-{qxaMMmR(ob5i_c0bv?N1Hc5j6`#H3sp>VtOyA6eZ|x(
zQg;z)5L0=d^0#gdEQ&ghskA%MfuGGs?UCA?n>26eF-AU$y=>F>wGNW|Q37VJ23Z{E
znW-yIC$%h~i@KrvI>-iEo-5}q0=JogXPfH><(17FP8rclSTu4ATV_Ar&ZBhU9hf5z
zy@V^NQx@4<PlkBp;Y|p<6$b;Yk?uh3?R}(Z{FZlU!1wz%{VsYn8aznHq_H>R9|7HW
zDfY{#NagEL4#ap-9d?2j>B+KDRr^6lo=llKwTS9X7#`Z2sDbzynzXIQ-=ktH$STA9
z2^E_=ClB7C$!>_`&a(Fea>3jc|Hzcf#ZE51?w>*q(XDoFn4y`fe_ipkIC>zg+nua2
zE>Z@C#Hx+7W>?uuXv7B(<Vy;QW|tE7dSCpW(OOzmFpVQLW*IPjX((Y-J7?MU&otr~
zS`4q1Q~X|e5po)Gb!)?8OKBdWJeDFAB9t=fdX3=@BN)&gNF_6a_v-9f<H3r_P;yG0
zgsZSSoD@}O9Z9@0R?-6|e8?rS1Cm*g1xAx2nNMEMl`LP8qd~R5?l&_f*aV6}Ih>D}
zb1u)}O0kmezH;67<GiXMCexr$D$FZL!Ks0P=2IRFIrS7{$eRkluK2aIW5!;j4@-kG
z-$jDKq|*`L+w7FquprE0^eNRePY%p;56nDD^Q@jJ?Qx*sh*q3#cEu}M-<L4tm~`w}
zSf91^sPAGI;nvn@^-fk8wO1^KL3X3+F3hbR{#c1R8bb$m8BJwS6tu4Rzmi*A@7ode
z0)tvz@w*WckrPVBSkVqGej{3}r)WvZhi|u)4)$Tr!-kGyu+6?dW65X*GdIIsc!HN9
zSd&m~{)~~&`TmS5JK!WeX!h2(c((0E9G#3D+M_s2C!-3c8SM*L%D35#QEcukHS>SU
zo8x5t*v}`kia(*}T>jQgs?-%Pr(;o`k|yd|-f;PP4*1^i^wpy^gdtWAuq*x}9&TFR
zSyJ1k8(A)^u$olh6ikWN8OfV}8W`B@dt>8<H;gDvY!>t<j9edu6fXUW@+{JWwn=Io
z*`zwSDbH%)=TMELjBI(DUCPv%9%cJuo4i!D?NJ5njP1|>L$Tt(rh8EZCTvr7p!KW?
zu5Su@Rds$Nq)<(NTM2GARno1R8y(dDR>7#eyLHn_rgQ4uOQ)M)QCj0voa>9Rd|#Kr
z3UD)&&FOk07y}OyRkZD%LIMHJD-QUc8A9!BrS>j_-DjXPASJsznMbk$R1|ILV3<|y
zD?H#k23;$T`P<r9k2YV2aJ@!PaFC5!TnB{<8kVBFt&h@1qc2k*zvle`Cc3YaoXx%d
zG<S?MXLFVrp(qA-#b5hRu(eiT;-;Xvep`f~IMC`%&Uww7i8$545k?fQ)S3k|oDz%Q
zk7pym>KNq8CA{dav+ZQLn04qnjuf^X!rIS32gM)V4=W-`PNdiRBb;5(a*NYcvP?RS
z09L6s4hA5rSxy@|La8PH9kbXKf1dYx2;#glbM4;~%9athdL0MZ>a{sWXkH>I<x;dC
zhdSP#K_{VzwSAYe5kP;6ngZO(P5SyXm~g%Cl$y*(q#c(A+f5BrWTvJO56r9w-R_Ft
zhf3=7sE3LT+!8I{967=$TBmIFL~QQNHY1?rZ{7@*;liz;sqKVFuRbo_=&2pGR|05R
zNmdvLp%oB|IGs*64x@WcQ~E7w)EPK7R(fSe+;_z%lT<Rx!}Q!IJ-*`&<(K{!d+?O9
zD}DrJ(^gIioIlWrI1WPl5INl$vaEt6Z!}g9hddflHXJ`oh}qZD=djzi_0+KvyZw|$
z<{2HeNu>B~32i&sZ~usijcV+Py&SJOC;X%M?qkH<=0mY7{xOq%@xJL`jkg?wP1J*v
z*Z8(8{%wMsI8nyRBI#LX{Aa%h-r?b7Gu6k|(s8x`a33AkaR9J#4g1*8LzdRj>M$@q
z@;Msa{>}6tLGloH<f^BZ6Gbi;hixq0WYbVm4Oiek93u>h<_KA>z$!#_j)yI-KyJd8
z;F(BF!HH4e1>idlDK-gc*Cl}!L%RsA3EOqekk_#Sn40I=r|tpY0Q$ubReI1r_#3M-
z+fv0PY83R<UMw-vrs-}pMAsFjzRsDUH+if-w=~6SNrzn9Qz~2IoWh$&?GIRNgC0Rp
z96Yd(cIENg5De+`5c?LIkLUYi8UEHX#Fx^HA?>Do0fUdduhkM1Ox7<IdpluhQ!Z?&
z!y{!cWLsM-Lk`v7ce%g0_6Rh>RB5j5!3|Yp*KV%u_aMdUH%5Mow(74^9o2TCz2QO1
z$nf<F2^jk+$*`vME^@JE9~zRQ{v(KM-74H4A|5rFe+uPgGH3pdZoA@#38f}8n&630
zeQIDJe)2Wo2k-J=FJ}z>2DNO9p;byA#;4ow>7ef_z1WjR4Yji2%=xZ*I#>4e<KVDI
zAi5j-`6K3j{$36^=6=3g_Vd%;aPH^tLN(dX&!pCAzo;HOo2~hGSEwu99NjEl5oDIV
zj*JN|Z@d1oe>q*bBd=&d4`~9|<Uq5koF0GMw0kefHUe!|tt0?Eo|r^)P6cA?b6}pO
zIY=8$&I(L<Yi{hL;@AiN7e7iZj=dVc{s>gt^rz^A{NK^{uL7|T1F;W^Vt<}HFy^Sg
zdB4X$yRYGdzjbL2e558PE6`e%GcJI;>_BTYXL6u*eNG;Y2Pp~p7-;?)AOdfSF@Nzb
zW!bnE`M#8GWKYX3i!9HcU*A+0&AuU96X)Mj`sHk+NNQ4TBfH2K@GbUb8>=JXXnn(V
z*9A+=Z)-QLL7zRBrCv{8n7tSGkH0!FFah@&u<!(=v5y=b7^uRx<=z2o0Zc^*E&}~x
zK>CL)Ie;yI2LX2iF2^7p2F%6a6;T?DX&VJx2DlAyJ>au|Zvq|#T#97$4B-8M6R@Lr
z5^xUS^MFeMdjQu1ehBzD-~`0UJ%9@Vj{<H3Ov4WK2Y@+%2LX!!Ct{>)0OtU10lXD(
zC*Usu4+9<nJPqhMJ}@u_8~t3sLcoQ8M7w}d!1aI~fKLMc5|GYlP6HkX%!;F399s2Y
zuP_yG9(Fqcz@>mSfCm7#03HF{2{;xT(?fuHfF}W~05frd`yk*{!1n-`0vdltyMPM-
z9|v3lxCd||ChKv)n*h^roc<7C4&VX6BEWvYD!|X+xmOF|b%0L-1^_z&j{zPB><3K4
zgM;(&oGb@$CSVagNC2z?ybZ7gaN%E|H{b!B6dwjW0(ctGz)ANQd|PugU?JdjfQtc_
z0Y(AW18xJ{3-~PHLBPX+uLGV2JP9~v1p0;4U=Cmd;8MW#fa?MO58&f~uLJG@JPmjh
zFn~NM4c`J?4VVMC9k2+n6R-+!7@p;}0L}t@67W{QPQd#Cj{|N4Ov6HQ-G{I@U=?5h
z@L|9jz~=$C0CocI1ndVq1UMRdn3I6nfSFh^a{;FUE&&VxE(5FqTm`rV@Ik<xfZG8N
z0saW^B;X$aGx4p|j{&CwW}X2*U^ZY4U<u$Bz)HZKfGvQB0AB(;3D^yoiEpvK12`41
zA20wo{v+@MMgg|~W_%3011<(U40tEtX~35Nb1;8j0W1PM1NbChCYJa;fcT#;&$=?h
zvnI=PS?2JJtynK}fSrKPntvY{s6^Qqk+opNxP>DxxF=(yapU;wub!SWkr=5?5k5aX
zGB5yj@kON(Sr4Slzi?Oy1ffXuDtw*>9m8qSixr*PX~AbZ=-;)|Z`zXDoR;!Ws+Q7c
zC+K5d8yI+EaJ_%D*E<aQgQ(XvxZVr89_dAwXI*K4dp<ms{;5r>z5k@!@x$1EBYRHE
zEcTjx^Eaoael3MXO+}pmK5wGE@vu|c{kD3=ZK+$*n$uG=J-S)8M-=rAy^i|eGi6q&
zDx??v8=?bA=%mvgd^$jn0H%G@)}F69HRX0o&QZwu81>enp4m=H6IY;i&Vat;clc_x
zonC42)4y@N6LcPEJ+5eD391nP9MCI4=kK>`da1>~6!cp`pJbOGvgqqUUkZ9MJ3KD@
z6YczWSp0iHC;g|{=_?hT#}55l4*EjS)4p%BQ;JVj0-pMjhJE7ZA@s-r{r)6$Y9|0a
z)`NZ<$@;0S9U2dtJ!&B52TA0R9$P@)k%Ug|Jd1X|1A3I&+3#xSF3T>5A?F>`OEll8
zoztKn1$_$cO~0tJ_~|>lZ-Ji7u5-Zu9_SMQ)4FYX@SIJ}N`)wDXDQ^oeJpW1)SvaB
zp8}ockEsXQY@RthJU&mN-WcQ+SO#tNEPXpc|2RoIq{ng4Gr&*xW;<U}{5e2nf}RHY
zZwO{B^qO@RQVdG%NR$3dMZU5V`9sJqCuJ!MBH01Z-vK?DKi7aB2ff<CuMAK8TR<;B
zK9Ves?gTvt^c(E_Yb-k)0(~Cn$=W{&`W(u4?ELi>e<t#(QqZrm(<L5IoGS$Xt)Q>K
zecF7Rog~hsd|AmNcIwYk$a@I&llkF#(AR^$fEaZA!1%9+7~+2%^zVR<Wz?bvR2wvI
zdqCd?`Y-Hs@}GT9J&vQ^Oq|Um>KC;`dF1t=C)0!S%VnU?vbWQy+8}<)JJ*3;V5iqw
z^eWJ|4AFiI=nsQVvP?UOe-iFV&>sRlnO}5*z7h0??ffZitN`&J2mL+J`QMpoJ1@5M
zOT$8aatQf3pdSOBe8ALig~eY4`iUX<t3W@Rgihnw0{X8(KV_G%*8k(G6}A39i+()z
zHu6Qp!L(ZzdQDwuJ+4>lG4=N_>4Q8ynY~VvKA=yww->hhGX{D3@gevNL4Rck{>7jl
z8-gAM{cX^b&C_k5_kcdvt{+Vbl&OEuf}YZwJRTkf{UrF4_8)Z8FA<%_V+;aqH|RC?
z_Gw-%)1#sEn1gy_phvQPECqeU5PGf$y&vsNw6|kh-yaA4L(u2g>GxQ6*aQ05B<)i_
zj)I;A`Vu?8@+*lVvi@IS7+%zyVy|ag4|70Y2zoL-i$D*6{&_q9a!b!D(3gNd&raW9
z(OW=Y2YSApUSrXp1bqwWpRv;=){;MTg8m@r$>!&A&>sUm*?4Dyz8UnVAS<nAp*62)
z%pbS(n3{?G7QRuD%uWH&vp~<a>sf8_*MR;R(38!(Euc>V9m8hD8A;WspF2f<vi0i_
z=sDm|=8q?({bcJ=CibbB;7>-M3i^kz)75tUB3Azbpr;L?e+}sGfIpf1EubF-J(>PH
zL4Rck{zIU54#9sC^u3@b^RrAS_M0L2r-J^=A=(dsz8my0cKh67*{25douE&%(<NW0
z@!bOY&p=P)r#$|`PjlOh{Xt9qA<%b${|k2dT8n-X^k0JxVDZa7l;mgPykHOL$>!Nq
z(4PlAnSTaAe-iX$aiRwFr$E2W-hPVO_)(v>L9rgtAHjXvX4gE7S^anxasu$Pn;mi%
za0TkeVbIqk@x!U0pFumzKo3(p?Y4Gw9w&QI5>N7Sa1Qbq>L(l5BG4ZMJ(=HDf&RIJ
z0|U2{K%IZ2+-mCE0{Sx06YV3Z%_l)Gh5Quamy7JR2Y5g5F~WUuOZo%Df+M^OnumWq
z<)PHJG^q%HZy_{Xmj2f?<LdM`(~S9Jf1PIBmHuj~v6}9l@TB9}?9(2)@AjnsHPtxE
z_suEk52hJkPa*tsDe2!#GhX8R-jsBlcfQZ}kEf>pJk8jVnvObqQc3v#OQm+sq#;vA
zs~3MZ9se-t3*L`C#veTCn^KGiQxqXHKfTDf0ry{4<&4?sUSq!8PfDL{ERuU~db#>X
z+5@RKcnTIx{fBhpd!F>aq#3{Pq~rd$XTD+lN6P)4@1%QB1H+IG#wX~{uhV^BPdBgw
zRu{Cn<`GZ&x6U)(@nGEllA4aMUGGRs$JfsPnijzQKMza)@p;C!;fFjgoM$|F-WA+|
zj5+D^jV~!(##W@CNW&g9{p~dTi_Y|Tn(-&<Ca!_hOFg5;;eKBFy`FV|k9y9pk){Vy
zFZNtGBfZA60{Htq=YLt_2Rs?G(r+}%l?WsXUY0d_l!84MD#%Fu(H(I^`uDDMX*~VQ
zFngJP%YiP0e!g~H;AMzV$k(3fUWWQN81(N(U8czVI}votz75#1u#$>AF9>GPA6(kq
zDpR~D8OHk`57ZMJm+B>8{<hT-3^ZNXlJHe3bdD*&oQFL%U09O&8Yj^H8v=xqYDPRz
z$u;!c=odrqTm=OwGhh0*40fOA<+8?ama^_go~q8jp+vX3eH<IA{z!csA97jifn#Vc
zznS3`3IBh9{=F`DYp=*Szb)_sfx|MDeq#kr5;#-f0)e**TrP06zy}0ACh#eN&j~yr
z@D+h?3;aOfunVPqfo{F=3n<rRPcDiqs}9v=7v^4@TQF_L6m>(tj$)^QI&C`9aDxNt
z#<jK4&@#YigMusdU3DFP8EBP}TUQ^A<l?tfrbR<5q_m>0DR)^@HGU?ny2{9<(#lZd
zN+Y*wZ5`w(7;R9L)%YEq>iRlIAqZMSq$WfRa<{4`YUEbqSA2|I{LBmfE=K{h`l?Vg
zWaLIx2A4O4Y9qmwRp8Yn2*t0*MAn2OtD-@uk6$lh8NpCPLujp%q3`bsgAwh8YOBNG
zt49;~lgsU@HkLIu8oA;6TKc&lw}C%lnc@LWEj`bS6fa7+1VQVh{gP>DqCSf|nsb_e
zLW&n9#1TPcbIJOn<B7&l&SvMIlj3F49O0++(0;l3{UB1P)$LcNcu~Untsr)D$%;!l
z9%wm5pyLq^{VQg^bX*%J0iaOuI<9GcK^u#3LorSB>$q1c{F{Y9eI(myejR^q1&*p}
zejP`T$oiq<CaUn|w*Q^LQq0o)I!?VQ4b2ojt-r3P;oYE94AkXu5(mefrx;fWKj}|;
zYW)Rmtiui2QuFJ$yIJ^k+|})Ce%=2T7r&0<yM<rJed4FJ&CUN1aAXrLU$29^Xi#vC
zP{91F$6X_0xUuthT;OF=hwxXr435-{FAcY$WarnvLzyiL@#B+(L4fAd*l)P_^}4-h
zx~d^&(ACZLSR>kTL+xw(ACz_fpzz<OD++Y?e}{`-|8ArHJ;yW`gR5vf=i;9{%gZfI
zp2fg8?&`1}KSf2}fg8L2^f-#H%wh&cyUYIW_J50NG{!RB@Ozn+%&31i)78A`KU@ia
zj^Q&BAI-1xppJ#AhFf2E`2?zwikhE(iH5F&XUYF()Ft25{CeHjzu&2Ur<3L%UAleU
zuYTa{?d#v=>Iralv%V@>{94XOE`FVN#f85^GYZsv8V*C__V#y_RC3K7C5l1oDeQyv
z$pkaW(*37j4WVnd@Gl|Zwkz9qPq(9_{X7?5^NSmrR4q=!QK0Cy%}TgACGFF*Py6L6
za^Lmbv)9Y|k}CC#RS^3QqW~XmHy!_IekW|dR`JzNR#5+Sx3BSuApI(wk>VXhqF;{F
z>$IJi3QhF->%^yFJ@wjAe4mPySFe|LVk$gZuY*qfa6_+ePJD);*DWXhJVUQXPW<_X
zUT2*63k<z}IPsZ=UKgDB3k@Cbo%j*v?+H8cBMlv&o%k$6$6Y6W6n+=iYe(^YDt<9j
z$4NUe6~FGP<DU~h#*AxD{Ke+J&50k2_)}>|@qH?OAy&s1J24fzAssiI_)E=wm=izV
z(DU4hw|?)_iJxFE@;&)+3L<yFwO^q5m}b07|1i{XkpvHZeb?QuDZrDQRW3PnRz~=C
z7ygTackjbju>8x6?nRZjQ!$O;YQ7(AXZo%N$=CaPs!P|?_;~Q`6TJ>G5`PZjlc-;>
za{bHjd)1Y=v)X+d_ay(PSzbaLe8vPgmZmiD`aD7JpOe`w5A{9pw+vZVSs4C&f$@Xw
zxsdUL$GsAGJQW$_Z(k9-yT2_gXRyDu0iTUi2e<!h2Yw>@b>>PhHDvI!V8CB!{1h*t
z4IK{u20WjqGS>Pt3Bj1;?8x&nlKg<K<$|Xl&Z28P|22$%68veY{~5vmM)14GdKshZ
z7a&-Z{4~)sB=sK^{N`L$KUeU-68!PY6#jg{XCskGr2n<Rll&slXPVRxbA806=}HdN
z<Ev5Xe|)vVYniVnkx$22qak1CsUpU>0(fe7!X&4h)q=k}N8uL;1MN?!{+??TUfbsq
zBr}9xcZtI5ed=|BKPL9kcGw{JN~y2qv<v=C>6fnm2f@duD*5w7pV3H=vgO_mu1tcT
z0X*rsAjiwquM(yT!Qb^+g{OH%*Q3B|+bWFu`?S=*YMhr5db~~wzE1o{(m}(Uq1v5y
zm8!2JW3%9&6Z=e7;*Dp3AB_yvz3$LI)Fu7j7C%8G;%h7tibQ(mCBat!PjcMz?g7Dn
zL+m_J<bO}_W5qtY-9HI_=`=6b)br>v3>?XyApO;LE)#r>%iq2Yd?Nijr2YbzpS+u-
zelGTJ)UH?Tug9fW@VB|zZ4`Xg=av37(%(M_{<p3;kejLG=ZGB^Nc{@IUpG<7(f%A3
z`~=s0Sugm<q+N7}uWtjN$PO<^{oyk1TK*})e@@PsHE+M*AGq47PtJu(|AQARyk1AX
zDEN&M->Q{5#?J&_B>L-de^2lyq`q#q2o>nQGE>PHF-A4;G%j@#52py>9|T`GLDi@4
zEYUT5q^kcTnWs9RpCS0o6TMW;(0;WD_-w{F|J((<*3C|NM&yjn_cB`B{|&*fm;P#e
z8a6bf|9TlOZU520kHV?C&I3h#<4UPtCh>v3TSnJv;IsM8`DZKeSqaw1Cq&KzF8e<(
z_!DBE0ukpy;37S9WZZS%?-Kkm8TUz2f0N+LME=!+e^>DCd6Wr(B>yXUUaqO-Hwk{d
z%!^-$oNo($O@XSf?fJ6c-Sgsv;O~^Ufg)emU8LG|ud@w;KPmoC`59gJ3jV>-UM_d>
zU;Gdq@LHyz6kY0%6F=1PdCVBqu6td(R`Bk1YMtQS{rw*Bqf*9We_Ls9)_9Ka34SmC
zS0X1b&&%~u<m*F`Lq8a5zlLKX)3|Jtan$~Kx!~RFtQUC72k7U4>5B1RJeQREQ)Rqv
z7W@-}e`=bSG1`X1u+OD-mrESb?G^~WeT=Ff5jl%AUgnWrU+xq9o#MBXrT&Y8e?|J0
zFZd4x@1BoomnePQad@=g-SO}Xf`423tL+>UygP3>B={dp^s*)^L>~_}_GE{z$@+3i
z@J)h0IabxbP4FFpcdsuO;K3dF1O3`7U3vT$`9JU^-<_{668vr%m#3uu_XYpJ7%yY=
zxO53VMf60Guk%oW<h$`V3*H?kzbg3cmwA~#pu`x51;2Qr!WRlY0}mXsu)lNr{}|x4
zFG*DfVc<z0_k7$X_`1(2`Sjg6x<+EcQvFpDHy&1KW0T<Hxn9O-eU1s<FLC3$Qa>*E
z8kgNJy<Ev}k@=V-_3H(H(iLxC6})@jk%0t>^t@mEEi7`T2)<q9%oY4U3*No&I3sv>
zK6xV!oJhWV|MDHdpSi@#lBbCL1A>1^=Hnc}e<1iY@mmZlUsJM`{5?~>T>d=&HH;et
z?~b>{f`3Q+M7R5x;I9_H)${sg;K@(M-BM}TuUCLi<R_<rr~VGR*vr+|@n1ZLx>DiY
z<5(j2b<*xsssF6tXG)wwTEf>+!B3QN*Z7MNxY*ys4!U2{fls98ElKcABIgVFUT*I;
z)vR$;@b3BBFZc;kA4R^3Kdbb4N5)s{d9UEzarm2pcjwiI1pl%4gC6$_;PBKh`ZZzu
zRW5itj_$t#e4_cj26(dDMj0=izx`D3?)mtl;AhJ`)&2UV;BzN=xoJI)`4C8Y(m#H&
zUuD2kyY6-BYl5FC^KP;*?GpTUvGXH>e_!O=Wz&5I5-O7a1DF3?Blr_jyv(9~V-xWD
zo(b~j390`XnRj}8e=YbsC5~x-yZm#iU3dO-wcy81RqZYj`IUlq=eL`*9BEhkVYlGj
z`;_;Ar~F~+2qmBXO%YumGCsk%D-28ac}m7z_iMJ`%P#UVzj^K+#_M@(@B1;r4bjGE
z6aIxO-cJ);IKM0yC@x=&w*Xo13JOMRgJF7GP@|#W0Axc2gH`px6*cvErBAR5|9rGD
z7{Wgq#Y6Q~HIZnfDtBhy>;gzmP$@_c{MEzyARfRstTogF|Ei|i+O=S@mGJLTtMTq2
zdd4qRqmjm_`uD22;Z>{n?KFW|!C-Ygf1@CHTVZ~XUKkU_n|KIQjo13DLkX`rqBjs#
zfxDq8%;mglyw~TZz%BFU2Efv^ELa@GtA_IDPH%`T$7^ze3(Dq}_=3JgMf7SUwvgNl
z&n*iUl>6|ep1Jb^KC0nRwaSU$S1cL9qAxF+TT(pVpl>0l*V>>1c!5rSLGV`oH@N(Y
zqvHIz<)LD{3(4oR2-UFb`~rUM5f}=ln=ela*Vi>hgVp#3M+l>UmlGAP3RO20-&|T<
z?eo>vG6xuvy}`%p<#*}GOLL&jY`heyt_iQ<S(87#E^?20t5X8ev$<h1rmwWTFj#go
z{;1weuMMp#M)OdmCen!aCDFT#&>^iE%23TGFL7FAC$ZA=^HDe7>LI<0sJOfU=J27F
zP%&Ptq#82ci-gvk(!rk>ERWQ{sQHc2;_~Uxz@-gPK3gMX-{SIXgMnpvHr1m4YfV^V
zsm2Q$Uu%x3HJU*g$Ynk-u#L-ZUPisgORhe(ZnN%=tPRqP6}RGdUAY|sip^@OGv`tS
zFP5rbwYInvPMRO|;XPH0gD@|K2OiI_YYI0u@eDslV{~n>JXjN1PF`kz6PEJ@RsWM$
zWVt#hQ<GmZrU&2?`%?k_34KHLij~n?yar5J)tXPW)oiusOclS1VL$SHSP|Ev@*urU
zt**YI76H|C0QDxY{25i%%a`LNZg_WEFuHbCgj`{EuzWtvIGCjXjKreC2ZjdX@RG9N
zA`6L0lRsUHRWdMaYK*KXLoZ>og&#ddtv(En3AQ<;CaRw1JeSFB=~Zn*1vy>iQ?&B;
z6@^V^@eAtkZZThN>CI5ewi+gT`yJ`6hs%n}Gx!~Hs$VzTv`#R7G)+ti_5rVoFh9K|
z&E=4e5L_5k0a(9l4i1B!_^jZo{AYC;CSWP#m)*She-?#js`v9DJSL1kGlJx5Gg#&)
z?5PS|6d%|N5=A+O%cwPrzZ7_m;#@&KrsaxAG`NUfG$>wB-#`Okf777XYkQR(E9-pg
zAidab&{*;8JFCT8y%vuG_h65jRU29pY^+|VoMO=@b*e&|zsfIdgXLPr;Xl`M9#p>;
zF*V;kv`IY9WYL~R!+9<ip+enl_sjmo)bf@;<veGXCl#rfgP}2(NMwHc&4~`Qxr`(j
zSX&~6p)cdvMX!RSZadQphyR9aXv*l=YHIL_*OVD>UKuYe4~QGI5W2G?WHV}hed_ik
z8dDpz&|^sn-+fQ0p(^2uj~UGYNylGW&m6{(p%@~oggdHAwl_Zx8hV>IC-F~f2Eq6o
zZ1BcTyn&MZhLjp)F^8Hyd1)mN?ca@161%ZBd}?dY!r&rv$E+P<RBgR?&1I*t%{fX5
z`8je2QqZ>CC3+KUf~hk&!cE63NmXPz2Uf#UW&TtVa?`IgMJT@?VpD|aVVjdl^Bts2
zC3<~8mH-oyvPHCMtml;1w;I_ldDl>H)dkZhcuVXcE1vDB>$#V_KBk!VZ#7-j9522F
zd(bMp47aH<g8gdZTnF>UG&MH(KKo2gl<#132Ltg=El=#E4-XbQ-#zTu1Y?3?;~uK2
zYQT=MemNyMrHk=0U|yceqth|#otu!_`qg;1@Nz^%`9}dE2~afKY3r<ZCWW*)DO;>o
zxpUxov#=ZC1mBnZHN(6>sI6~lwNEVvu*$hx5y(qdHAT;2HLx#X*gslJ*f}!A>QGG+
zLKiKFNmitU=?*4fNie)J622Q-yE;n8=_Sc_*BUa;$r3gA<Umh_bI`k)(9jmL&UTZI
zJb?~EWRsph7pelm!8m`es0U-2>jqAZbY4P6wD3bECPM@|$ErqI3rS71pqU9n(qQ=a
zm+l0k?r2{Y_W!}aa*iBCpwQ=Th^724?m^Mfo+7)P1+l}*1}Mj`YOD{g#PJ{g(U3Eu
zqvmRa85R4I8bZZR>u^I(8i#b(LDRu$8246`Vy`*&pEOgX*kqfKraX=ld^ErvJ&SC}
znn!~da!ng@xyjF~ikQ1?+GNmLO3BsPx-Ks}>S!|@lA{!G<Di3+QjY#QGYy7{>C{f2
zNafSZ(-Cb|7AOg-bN$n<eO8&F9AFILaDR6mINWjQ>F{?PNB3h$>szM-yum{ZIA`l0
z_C01gkaP*exfI$wXX~9gTAzN3X!Dt;{IWZ+t&=#hO0-@0Upam*q-C%nf+H!lmfNg0
zc;ac@lLT}}fWfje#D3zeB;*ezA-VfGcO>U<=<@Sx>hGZ=PW-TG6;c`VKq={&0A;R@
zFqB7OD2RXjX+C>FNSUn<eX$fbMjG(63D1cdB6zG7!fETWB&W_uG0Vz>gI1-p4{$0m
z_&aN}8Nxs5l8{enjPy%wl<fPUPcNPv*gh;toQ?v53>emcPv7ixI?QvN<I#gVOb|Yv
z!FJ*7o<LbM>eH*Fj~MxcMjbnR`i|Om8<?}ElCA~)Y`ZIy5t8zP^XaJ}J-nmSer%U0
z4Z_(mZQ0IAE@E5898cDOCx?^=vvO8>PF%v8#`Y(9dWdZSE77hs*(p8P5tDVOF$dri
zPe*H$<gki4GLFLr9v41uC_|!xv5_M_B&u>GL66)y_wk{Baz;qoU>~1T=rf?RoDJp)
z4bPu7#kJ@<w=Vt1{>6Nj^QkRiYmAaQ=iZ)EJaa#feyhDar*v!zJTfzAcgD_2Pc2Iq
zl$F<)2Ym?w^5BJZ_Nu1Fm3*#AgR5QsEUjejJwN^Io{4-NPhf}IK4Y#rjzyfSE6rJK
zHYK%Ax_`-^jX6gVbMY#7&_pyIY#-}HKD;JGW)6l!(eO&w;}K3Gg3*-?_4mM*RZ4QA
z=OgshgTYBVyDg>dSTbieV9l+s4Ti#Doc@>(Kk+*cE9eouotqDN3eDpkm{2{NO4JWM
zRJOVA+9{$B){Lac?K-{ox%M$L)jkGnNt2G`woas?HKUSCG@GK3VI3i0*3?>$cdci>
zB^EO2Ghet7hP9?RO#T&K8EVjv7sEKXBctFs623rFk0l}!s>K&BDEO4mbmu#KV$X-e
zi9962zqP^3$yv@VcZ#Q6n-5WFVW(%M>L}$LEEtZ-XNEKT${Jj;W=(Jve$%AB4qqaQ
zt_`lvb4`J>da_^*@!9TuSLyF#@V9mbhej3gX<{gv^@R)^>PW1d5mbQz4?z;dL?i&k
z_OA=@mtN?L7X1A19PSn=E21xN=&wUm)ZJ5!cv2Q=Y^sewvHA0Z({uB5084aE<=ECl
zzCsaOuWRP0ebVLF{v4mvM+m2A%2~WU>c}IoV5nfIlZNDR1}m}-M(4nF&*}t*E7gXo
b>kLk}#KdPg5#3)5I@=7hdJVz{hUdQl0}eG$

literal 0
HcmV?d00001

diff --git a/c++/testvector.cpp b/c++/testvector.cpp
new file mode 100644
index 0000000..ac5a900
--- /dev/null
+++ b/c++/testvector.cpp
@@ -0,0 +1,69 @@
+#include <iostream>
+#include <vector>
+#include <map>
+
+using namespace std;
+
+class A {
+public:
+    // constructor
+    A(int i) 
+    { 
+        // it always begins with this constructor
+        // set the reference count to 1
+        ptr = new int(i);
+        ref[ptr] = 1;
+
+        cout << "CTOR    NEW " << *ptr << " - Ref Count = " << ref[ptr] << endl;
+    }
+
+    // copy constructor
+    A(const A & other ) : ptr(other.ptr) 
+    {   
+        // in the copy constructor
+        // no memory is allocated 
+        // so just increment the reference count
+        ++ref[ptr];  
+
+        cout << "CTOR   COPY " << *ptr << " - Ref Count = " << ref[ptr] << endl;
+    }
+   
+    // Destructor 
+    ~A()                             
+    { 
+        // it always ends with this destructor
+        // decrement the reference count
+        --ref[ptr];
+        cout << "DTOR        " <<  *ptr  << " - Ref Count = " << ref[ptr] ;
+
+        // when the reference count is 0 then 
+        // delete the memory
+        if(!ref[ptr]) 
+        { 
+            cout << " DELETE ";
+            delete ptr ; 
+        } 
+
+        cout << endl;
+    }
+
+private:
+    static map<int *, int> ref;
+    int *ptr;
+};
+map<int *, int> A::ref;
+
+int main ( void ) 
+{
+    A a(9);
+    vector<A>vec;
+    vec.push_back(a);
+    vec.push_back(A(1));
+    vec.push_back(A(2));
+    vec.push_back(A(3));
+    vec.push_back(A(4));
+    vec.push_back(A(5));
+    vec.push_back(A(6));
+    vec.push_back(A(7));
+    return 0;
+}
diff --git a/c++/testvector2 b/c++/testvector2
new file mode 100755
index 0000000000000000000000000000000000000000..232bbaa6b6801b58d43469f63cd3bbb17ed16351
GIT binary patch
literal 21943
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

literal 0
HcmV?d00001

diff --git a/c++/testvector2.cpp b/c++/testvector2.cpp
new file mode 100644
index 0000000..3d4e5c0
--- /dev/null
+++ b/c++/testvector2.cpp
@@ -0,0 +1,68 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+class A {
+public:
+    // constructor
+    A(int i) 
+    { 
+        // it always begins with this constructor
+        // set the reference count to 1
+        ptr = new int(i);
+        ref = new int(1);
+
+        cout << "CTOR    NEW " << *ptr << " - Ref Count = " << *ref << endl;
+    }
+
+    // copy constructor
+    A(const A & other ) : ref(other.ref), ptr(other.ptr) 
+    {   
+        // in the copy constructor
+        // no memory is allocated 
+        // so just increment the reference count
+        ++*ref;  
+
+        cout << "CTOR   COPY " << *ptr << " - Ref Count = " << *ref << endl;
+    }
+   
+    // Destructor 
+    ~A()                             
+    { 
+        // it always ends with this destructor
+        // decrement the reference count
+        --*ref;
+        cout << "DTOR        " <<  *ptr  << " - Ref Count = " << *ref;
+
+        // when the reference count is 0 then 
+        // delete the memory
+        if(!*ref) 
+        { 
+            cout << " DELETE ";
+            delete ptr ; 
+            delete ref ; 
+        } 
+
+        cout << endl;
+    }
+
+private:
+    int *ref;
+    int *ptr;
+};
+
+int main ( void ) 
+{
+    A a(9);
+    vector<A>vec;
+    vec.push_back(a);
+    vec.push_back(A(1));
+    vec.push_back(A(2));
+    vec.push_back(A(3));
+    vec.push_back(A(4));
+    vec.push_back(A(5));
+    vec.push_back(A(6));
+    vec.push_back(A(7));
+    return 0;
+}
-- 
GitLab