From 5a612f835441b6a0b1a00f4564b1b1cd71ae805f Mon Sep 17 00:00:00 2001 From: davoudn Date: Tue, 7 May 2024 09:31:45 +0330 Subject: [PATCH] ch07 samples were modified --- .../examples/ch06/a.out | Bin 37248 -> 119392 bytes .../examples/ch06/fig06_12.cpp | 12 +++++++ .../examples/ch07/a.out | Bin 16424 -> 18128 bytes .../examples/ch07/fig07_01.cpp | 4 +++ .../examples/ch07/fig07_03.cpp | 33 +++++++++++++++--- .../examples/ch07/fig07_06.cpp | 10 +++--- .../examples/ch07/fig07_10.cpp | 26 +++++++++++++- 7 files changed, 74 insertions(+), 11 deletions(-) diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/a.out b/CPlusPlus20ForProgrammers-master/examples/ch06/a.out index bb044394640062f534f810904306603ae753644c..f593ff9bf2e0ccc5cd8a30c5d8e2bb69fa48ae71 100755 GIT binary patch literal 119392 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 literal 37248 zcmeHw3v^UfmiDax5)@2Opz+aIC}4QSR0ttpqv3I}A^~F(6dm-YQdLRHPO4%(BG6)^ z5t|q?jVO-e;~&~~TE@rUbWiJ|U5*B&2|BiePOol8Z98p0rXsdxl-AhYW6ihE+2`I{ zH&x6~vSzJWD+en3p1t?kXP$IkL^s4U+DJmE7*Fsxho5nTyH| zaycg~WP2*8>`7wiQ^9hbumm(p3OdWRa5*PjDT`?eQXQ1)eiskqQeO?1%U>qtIN^QV zJ_S{MSEC%+<$s#koLVi{=d{1d7je54BtM~aNo%OFyzG+J!2H%wII(g5#)|U!aO zNO7s4lU{Co$fvGYyH11Jy@X?NTHaQfSMrE9iRr}u=py&8rce0Bcfb4olIPqXG`@cR zcl_gshxDd0#6yYXu}MUJBK}Te+*rW;SxZ-ztXfz!dg`)O)AIII672$fC{33@n*lfz zpIP`^j873hv+bF02L zf8j44|K1K$;&yw=$pO&p2oUnNH;B(Wae10VOdfVxX#_s%0_4fuR zKQMkp(KB!Enf(2u?Z0_@_N_0y@yczfl6%)ce8$v<#-EjevLB7lgxBG~neg{PMkf4o zFjgk~by?)(XVGVK7XIoi_;Pe$rh4DV(yrID)O#8nEt8xII7=q{m09p*S@gU%3qQ@@ zndJX_7JbHN!LQ3=hs{~qOXI+u!5?O3(f`j`*S7f;0ni2!9z3IwUn#L$Dj+YiR%?y(WS7380YU;E%zd39oUz z7c&1%u!F!alnB*#&oKTe=C5b|ex+xbMAS0=A#T@uEN4FBe+Ve#vpzK6P>wgx3FGv)fVb@4@p;orE?`eGqJ zL`Fm5<|=<(+~e`L_@YKU>I=nVRertBhd;V!fl+7pBkh|EqQ>+Zf6Z!t-6H64eO!huK|?Aa0W2Ny#^b1>fFYgG&ae2a8i{W!DL7Ua460OhFhUs(nlJ70mIkY8u63msbkFESW&9iuC61W%0UB9sj-Zt z8Z99V35crkL)ZeA=ICB>v8GTsL`oaY8#fy5!DuWJ_O-%cjE)l0V08|Iq#R=5HL`is zt=N5}$b7=wF$xuNbk zbzWZ4=G$n*LYsqX@;F(Wd&J}yinT{#Qbt|8%nys@I)KSSV#vt_NREPB7RzB`;L?j# zm$pWlvE+WaMba_dd93MfUHFzzIAGKUV~IBG18BG4|2mfKuNzIiP^*Rkh5iTLztLyF zSvQ7YEdzI|vz6IBGCai#(kUf2 zO7Y?}nx`TyTbf424k{1-Mv1?pamRfcuE&a8o|X?dPUKF<)fw7&&4p)EdHAb7E?j5+ zH%j1%PyM5NZXK2Sb-!AB< zYoBs{(;MH1e)-xMNF|+H1bwV_7UwsK{1|OI=i{??p=6#`f;=Vl90W+2W=PP_&z}_j z;fp0c>A?41B=PwT3?OKL+7SBT@7oJbD9NY$=udL*@;n87cDzf2m%Vnk#8y>d^ zW~#8^scw}jZFs6%C9e&y`i5vVHavH&D6-y$KV1m{Y_Q?sKxS&O;m4a;O>4K|;qYeK zXv3drVl{264PRixZ@1yeUsc*^!_zY^l^(F+)x8?g_So=eD`vpGHvA+TexD6L#fIN+ z!%wy0du{l0Z1}@A{CPI~$mNIyMl3L5fe{OgSYX5gBNq6-Vu4Qzrv1s=`9Z$7d(6LG zu4&$Fz45%%5pU`e~Z5b7gTD*-$Imu_fn};(@v46jq$*nR-QJ* z120*5+6WK)(8|*Wc;HbhPaEHXT~?lM2nO!3^0WaSh+28t_zpB$dD`#})LMDk=ngEm z^0dJnD7Esmu^qV3%F~8+;4CXo8`*(8D^DBPfsem1+e;hQf%mLDZCD51wDPo39eByg z(*||mhgP08rUQ>!dAbo9*k$EugF0}BnNQ7}1?x8zT(D9T_D{{c5nnUe^Vc}?YaRJj zj{Iege7PfE?8wh@R-@~=DchaCAA z9QkJ*`Tw7m_xz!%>x~<|UGI52e>+%HuX}nuuXuZwzKUK-O}-bb$D4`^F1Qm}44|H+ z2Y~VRjCqd0;-UCt46P2j#?Ts<>MyupEAhR|5d8ND{)KlFnEi#fYtVb(!^^z~hDLc^ zhrDlm5uXGBIt$28^~-)&{pc{`W>=~7&JyM7lR@9kbX3&oN@{?Ak@ z8Gtt*8gm2qTsNSsSwEE@xCKPISch_T-rGN*Ckfup@iR1BS75LPyxpT`774j}($nkh z+1BtuD&_6!OKtT_^6kz`*97L zz={FuAse@cY!R&2? z5C!0tphSX732FfPwjBgB&0oh1Z_jR_wp4(%UyiDw$8Ejdu5CkLMcqBr0@6XK+r696 z(3+}()^DU~z68ZPWgWNw6IIplzNX!_8}9KCo?>{r4&my@OX#XEdEhUQ)3@yixWt6I z1b;!k-DKR!j1LfF*8y+0;DujpJVO}NTQH~h*g0Nwz#H#(_Pe~}UQ+0nJ}y`fgI_01 zgKMF>XcpNRZTpwxD0m4K?HMzdEA0A3vN*k_&R*9ks%^IrOtrm?yKAxoYU}+osqiu! zfo#Ag<$ib;Yl63%x`NdGRkGd`@GVQgH%UOJw4hnMFWE$87YlU39Zz6d1x-2dU0AF3 zqx&IzT{7UEJ4yI?yy)0;8W5z7#d|$?yw#8u}Z2HBCjYr&2v*x+^G47I;+<4q=ox3tV6FTYpNWc3M(j zAQ>-`PbBZfNWH;gL3NT2a2Po; z#+MvhU^)yWqrmH=_gD)lN=_h&(uK%ANs$*WBz96X0W0%DzOduna3NSfEB!6dEnlJb zPeuD-og-+vZ=uV>++%;F(cP&Jxdi%B{b=+Eu9C;5OUI(7 zv;Q1r|2g9`lmN>KEWG{G6ZgO*v{%#zv+jo@+k1=pqk@cy{x|}^KMY%w$&l|$ep5^+ zn8q1*C7}04%{kvedRwc`+VZ#y>OH!5nROM0pS$Bl$#Geg1vV{}Qf~7t#5IX>U zs82sGyd@xa8gumHq!(7eHPE|I$0q8M105^6_2XF5n1$9yeFy}-zhgEiUcYc1cC6>1 z8cOElGiDF=^H@Y_uc3A7$6cLUj*q+TetWM|8~4*z<%SI7mS*VAEra7a+~~2v=ZH;i z1cq?mfc_N|cJiV>iVlZ~&>3=CHlTyeDAZeUeru+;EUOR6i5v5`R`F87eZ6))xExkf zJ60_VG@Lqn(Mx^FN$K@DCvf3*G)IXw!++eaFRd5Dd!1xMZW&rE=7;!Kr~%&YnnD4k zpzWwNt@N;VT63IO2KtiIg=f>$hFPR9`2Zw%7r%^VW9B$pV7n{xy`4h^`!OeD{t^~; ztlU(KTszt1g*!7_R(41Yk*yXED_xVHMwhk|bDVQlmD3qW!i-O#DTnmWXg(2bSw#~X zv4|P=GoE2Dp*4YQW-UNtk_SGfh2R7_rM1Z3-`(Qoq<{p%E69Y)P;L5{uYq?RhJ|`D ziR~ZWhW#iEl4!#cx+&moQ(Pg zP{&qD9zB^X!eos;Ei#uPI1p_ZXa&MUi{8RR5KoH}4X}ca_dpR=oPt#Z_QLGjLrZ|D z?PsDks=P1RulBj?xE6EG$QDGsgFZmBrP+DIs{Ezg$P}YWr zy-4Dc_mk{xy@{zpd8n|B5o7H>inh`=Y{=UuzI;4J&WzchFL|w4ab#jv%_?iO^PNNbd3 z@K>nA*=BF!nv?{O?14{#psAk*vFMVqXd&(P{}~g!n7A=NPh4a2)45N~!FsP)FUSk* zTa0Hv!o8TdRT#Fj!OZ3y>B1c#&pEmBR@&P$=_k?!&=Ia9wpl^-D)kULB@P+Z{7lv< zLS;z|8u*;pDD`{0sl$QlO9sI0U3|1)7tK<%)X&FbC?ZsSC}vXdg03Hp)uIG4G)Erw zx_Z5fUy5BWu6rhFg49JMyXbLt(Q*QW+)ro+OH)Z#p5#Ywtf!5VP^X7B#$E4{0-p&+ z`|e;_J++2RCtE|+*~)$gTiL3vgG$tLA?mH_uHTci%b?6oJWwqBt7RLq*pAnmjx_sm zg>qKzkrs|p!^A9QE{b7iA-CDVbeBP`n@eMcHj9Iztek#oNG+?kL?K8{(~v|ZY3E7H zhH70fy~1JMbfQ@n=C~Whh0hBAbk5guBw_^8BL~6ZTxBGOO+=c;(!0q*sLF#OWNV?r zTj}{GaebAhlFp>d`v&&Fwj0?JH2x@j_lSK|(`|s*PQs*OH;PF)jJXajJckU#6Fj-p z5j=tbdQ9?f>1Lk2><_rcBMP~1AG9wApHqLpJ=1O#J_LK3Qk6<6xs|33FY1z-kVc1* zA4s43_MeQnzRmO518s06i?E~=k!*t~T?fGxwDf`=7`hhq?hx`G>Z~5eI zd7{3LcEb0Aho$K=H@7Aa}v+0^!=z|4XP0vZGGP_ z_5E+pUy2IfedU)o?DuxI;bBzgmR>E(C7m|ZD@tQno)X`My|I&5-%df7ku+j~5etl1 zV8jABS%A(-+fyLe1HMbYPON%r|eQoX~?$fokiMGaI)E#MZ$9!$=t-+YPF&Muk z7!12LH-3ACzoD30!=o(wPtumS&EHUkB4Kw^G}7h{Ct6#HHynw(@e8d`fGhXWuV9ue z@x_<84I}I>x}_!LZz0B+n-jC$mo0T0Yug;y^tzUqKjE-7XAnmkD9xx8fdAlTKlN3{ zh;=LV(dDl5MqNt3Ilme_Q-7689me$o{i)O-;9kId?2@OxmrCtJ-u0VQsuj;TF8h5d z)sM3T_W|OFxb`%l8+^|LRsy~W*Z}xzz^#B6VX@u=cpYFbU@sv3X#Wl@#YKRR0#*a| z0^SEWdLWhh5nvSXXOw?Gl{yYM1CXB0)c{ri4god*UWje(R=^tp_W;+tfZzlTz zuLs1@bnOX1H{kPtm4NR7HUJI*ZUsE|4=4{<57-O13$P#XF+dzw*MPoDVedjU%T`vKPi;z+-C8=xETRlrKX&j1?$$Km#QD_{xW9zZW(FCZm6)E3FL zxmI&+EOebWer*0u+>R0+UwLZ{@YPwwv2rY(N)f;Hr{}BQcOa8)ThA<9b>`G73(mMD zf2(%+xr^s4m~kQTQTYw{?D=IXB?=M}iSTiJ9ss_b%5$Q+cHpxOzAw&m>t`0;mA7KT zX{(?R@I-$KpE&5^e6^ylvFNXXe$xrce*pS*pf3m1RQXL-`SH-_8=#ll>1`H$9_aUg z-fXAm-6$AHKT596HPynBV;`D~t?YTqo-;tB&wi9Y066+=IE>Ok?;Mr)kFp*&Xw~@C z{x+4mfcU;Z>lNQMmM(OEwH7>d>txc`NjlZD6Q7=UQ>mqx2S&eOlTqI}YLt7Fr8DN6 z8IZHWE(iJ~z(H+tgYE^r%}&n?nB^-$zaR8_(&*bwdIRYBzmsh-_2hQAQKkazAo^Tf zkDhJQvr&i;HroK6Lh$S*9=f|y_8_}GDEUa&*HG6^@Xf)s$>X!=AAtTK=yZa`q(?3K zc-ZP$(8W)#RUKiAJ`ePtg1*mQKJRhCK=oIHek0~$@p}PP{z|KSE9kYL*QAxd!Ysc7 z^gBQoze7;vtE}=*fgT5aroH?Ii~btun?V=9J5lAUE&2zbw}XD6z5I0+eLUv=DCjsZ zVA-eLqSJ5BcYscZflT|wEjq0&Pk^3De>aM>g8ne*_4e}Ahqf`k6FjehCzD^3jrW26 zD(EyeOdV|F;>dqPA7pyWUOw+8(Fl@Xh;?il*3C@yyFpLFhUbG`jO)?eU{-bxT6U-h zdKP#thu@m?QROb;pgQ89ufiIfZ63J~^uGo@3|_N*o~*zP)Q>=a2lOA<>14<6S~?sB z&rMj@XWMxiEcy`WG0A8_9qgB@92I^MSV}MS6J3569QuWw; zHwhVW@MQ8$>XUrzADTd)g=@3?4VJx%KyL*-lRc=s7xbGzr+LgQ&vO{jTR`sseY%~# z-jcr^^o^jq?euFc`d+4ItN$>|pKmWOr)lAHNzgkXf47~Uw?kAQ+K*|K_IZtIbU8T? zo%T~pu;0s8Kkc(BK+m>zw}5^z=s5dj+2?AjecM5w4*FU(@z{fI2Ysr& z{;Mqg=7GKy^bK};UY)65HR#v;TPk%;8eMMCsE=Af-vRnLc6yDJPbi#AELb+?0hd-k zrqiYUz=dH=M->UZ5Z5d39COcU+SBx=B1WHn)q*=++9NhbK_OWqX~Y5}78tR>hy_M0 zFk*ob3yfG`!~!E07_q>J1x74zN-RJRxRBI)i`09H=QdTNP;;$9h->OD$yJcg3`PDMOVL0-K#iSDy0v3LzXScy=6A0CTQ!p*Zt zEqE3{36I4@YRBU_O1MQA>1#~K*GnRaX9Bnq&psGOfW_hgoJ8UgyGTWRLEraK!s92A z)H|2lEJ)$i7g0)YHye)C&{X~6*$N~nKK$5Cv=8h8g|pHkUnm~J(~|<3S9;>BK|y~^ zJS5RHd=)10+0R4?f+ zoUV!FW>~_ol3@+Q28Qhnw=&$xP)a%ZzxfU6W$+%jCGMhijfrqP;r5gkFDNdV?@5TP z=eAPh%4RbHm!2KTo^bQSU+EN&c#fr3CS84wuInujVf`&t$VtJ{sb}AT1IPXr(OmHKJMhcFKan)5l#FU#x*GUQdUgO$dLHsfe({|VE}vw)^ZnpwLm=^A!}by1SAd_s zo4ZhoNc;OO;4{_xAj@&SPyAiRA7uGzzW$8yZ?gTl+q6-_{)O7O8M0dXzM9f>EL5bY z^L^Ycz-Q8D7w{AF&efdr%-^w`IrF4k@!c;j4>SIW*%Ghx{59hTFOm3S3AAgmP?A2* z_i;bW_&1qf$(f9WjriZgL0qsG?JKq;i=Wj^PHO$Z5piRR@CR4p7z!U#77t0D& zzg)%mX)HkX%Y9koJk9*$c>pQ?KQewT+nMH5N)ykJ^*Z0DzaIEZdft@<|F^BgJn z9tpIU89&H|SMB;9=9#n5UiU?kQGEA<%dyyaW~z5}7W@sslii%}seh93HN0OH-wi?j z2U+B}CP+C>yHzpX`QH3{8GjM??__T80VRj+(8l=p89%`NyPWY8&dl82S-?}fobdx1 z7+=BdQv1)lv&i{-!snsUZmy8QlPt&S=LdnO`O3L29ASQE9EB<9P}1`;aX1O*AX$DD z<0rD7s(-gK-nlM31AL~q1^>+a1+=k2QuD*-3eWZKmSpW>_!a51ey&99Wqcdso%7pW zjIZE+RP*E>;Awr-8dv~>rxm|r9T_)~_|MbU`_lQ(1fKMHWS+$DV{!%Xnf$zk`DZxB z%l<6S()&-jBpj;64jB;zl;L?YC@HwQO*RIfZdWYu*A z@R{muX8zOI{;Iuyr{pkRd|yvhVc?Ve3Wq;zV7xP~#$&)|s&_0JLUNpbyN2;MdSttr zCD3*;{w%Injjx{o?`9r5_%-mE>K)30pZFE2&+kj66z(={Hsdv}SILYkJo`CMf7-K* ze`t}EvyPSegz?UKdl@D)vcp_nf6JM_5qLLW+riDiD;@0kZ)M^C4$Jqkd}Ys<8SmU* zEj~x;qh8{y+Vu^EXMa{a);EZx`VXsu8py6d^`r%RJ)U>~Xvbo-iSL)4DH?L+%C+ z!^?;s2pmHBl2Ax9uBg6h`Lb#hNi-T&>Lu-~YL~6i4SnrOiUwmK-j|_!4ThyY}e%bPBJ=ZuJ&R6au-oip*p{hW2o2NwAOMP(}Mg##UN*5-= zAp|>VGY}a8riV$Qp~eI?t16&-O4@y}rxD-O9`rPdAOI8&0^J%2M1!$dqzNG}YU+*J zx)Q0ah}nWrBbDOS^73`@G8n>%EAqD@&O~WB!mtGq+XlZVXpSb(pRhT)wHer|Ht1en zQL;#{ZY#m3)Kj*otYSfV*&-b&PzxOp<)Xx}Yb--pAOwMEmM`oNiYPCzhi9P`*G0zB zLHG*K!a%603DJ7MC|ax|Itl%UVjO$M=l7%4ry?j!)^I&RimZd^Kv&^y|AA20NW_8^ z4hK4C2+(q}X0}@g5m*8;(9X%nPslNJ4n|iX7)OwU3S(Ko*N$QSC3-!e`$g;@5hpm2`Gc0gOU3_u20RY#+Pg@Y@MMTh{5HlDdo{|6t7sahW?2#IO zj$ar^1|f+Gq;#q4;ib* zbPt4_5kq4Ewq7R~949;OhsBt)#nUnCrd2}N^rWSy1v67o>R{URomSbGik*}>*pZ|A ztw?EU&Vpb&GI*OEOKr_Qm=Tz%eN$S5tz5f#L0c%yo5dUgh&ePyFfj)Pqw~x4moxaB zxi2X*)9=#eLy&U10e64;fc44Iz5D8(APK8gI!}_G#nkD`hEez(a zM8%Jk(Ic$^j*xtEE1%s@$~iol89&k)k+R$ui-nrQdMyI{$q11ul;fB0NVO5bP|LW} zqOg4Spk(H|u-(vgcwhGLk!F}a+ddupBXOrn_7TzJWH>eH0j7;l&7BD*m|ASP zG~B$>EtaPQH;#$6L@PFXRn;N72k$@(MYUF}$IT~tfN#be&S(#GYVVn1F~egNV4#{e zvvh;e9Eol^@qO;1Vf+-rqI4YEac%xIE3Y#o{ueDprZqGeGrBFuX;8Ap6V&Z!&6F5 z<4`<17#=v&G1t&&rAM7PMvS$)8O4aqX&1DjG}HW^Ymb!0g28}_nQZn*wuMwYTQnEZ z69w;1i{V+R;%QQYRS;miF{CBbbT1#mhBlhdU{Bo!FIO{R(&XjXv{9C=uzdWQX&aow zgquA^suH=cgHu` zP>qRDYhXTJ3naM^NOnGjR~PIpzF3P^9M}{_6%xjylG1??;P_f1En|Qd4YvBI0AID^ z#YV;AE1Y6n7B@$brHfe5uN5PlF0$gmR&g{U9<>(-Tlj0DmH?!w9I8R++~7ukusx1% zup05)R7jN@VJSmhqjFzc2;!wc>;|-Ae09}^Z!qj%)8%}99!k3K$zusq`Fxgw>b$Y4 zfOzeRj-8CfN0qPO@(PyNnQ@)($kX?d_VO)UUO_%KW|qP+v$Rx&oV~m{52~O$jhoI^ zrl)I>#p`z>N`G~ZTESjs$1yOGocjBK#nBwI{py^xf=;WvFX{H{(NRpjCNw?peW`m|5ws_!PVibUIV5^6Ff*f`eS1^d~)){*2ao za6wH}<<&WF1>Nj0s(w{owf}Fp{Bjnk&W$Um&Y4qrd?jqwugZT1II2R)*WAcZa*Mw> zS&^Qc{r@n?_VRAGoynQ}D-*^6DIzf;(_Nz@Ah&g?kYf_WISiLIrW$DlIwf_Y*E}_J1X_Go*9H_T;Sp zryvrGDzDBHD@gBDvnOZ$Z-Zzrzh{NyR&dAZ_R^OBDD3YX<>#%H6a~GCk)fkG+GoJy zNS7EJ#G-!3p`f$9%KsIl^RYOBWtLaJ^H5Onk!(sTuV4YnlkfAiX`Z`Qze^}&`_cHN zq{=D1o&=8Cq{^G;vkl@#ax_?#S8yumY2_P4DNSRj#wlaX`c-}!3X?2Vf2As?prigu z@Y>TwTz`ojiEDM9ijS|ER3*+19WEw#y$!NR5p^ySolC)yBU69Xu5rLA-EnEA_OQI{ cr%B6}RJ{s?V`mx5*KC&@^iDE+a%8pt0yxJEEC2ui diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp b/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp index 03679c8..2aa0a8f 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp @@ -29,6 +29,16 @@ T integrate (std::array x, F f){ } +auto integrate_auto (auto x, auto f){ + auto tmp{x[0]}; + tmp = 0.0; + for (auto s: x){ + tmp+= f(s); + } + return tmp; +} + + typedef double (*FUNC)(double&); @@ -71,6 +81,8 @@ int main() { std::cout << "Integration full template " << integrate(floats, f_lambda) << "\n"; + std::cout << "Integration auto " << integrate_auto(floats, f_lambda) << "\n"; + std::cout << "Lambda test " << g_lambda(floats) << "\n"; } diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/a.out b/CPlusPlus20ForProgrammers-master/examples/ch07/a.out index a6107a094d4a5b440621412078e163a15a302ced..9f27eb89995317ee998b21afaff35ab12758ef3d 100755 GIT binary patch literal 18128 zcmeHP4{#LMd4H0Skpo5|h6H2RoGJD|2xpxTAmS3AkPcQx$TE^*hnOy>yA!%tx|8qr zY~e8u9+{RKSu=7HJD!O2x<>MHzQq^?(20G@#>$ZRh?QEoGYRpLRF0| zNqUu(<+7KqU_GJ2ck1(zGLldKb?5CnGL01FY^U_-IC<*oI^|GFqHrr}SDAhr!<6SFyIrX)(-m^Y!MtSLLHmrn7 zeRn{Q;&Q1;x_JxNH(fuBay*4ne^a`-FW$Yn{^q{uioSRvGq_@~VfBjD_5O6yU#I!x zmk$?>sf}%2)E#4lNq3g-w##CVc=MP~@_S}ht-t@ykD?#!f9UP!N3VYSt;0K>A{p|V zbV!C0*^@4(GUaFEA{jd#kLf&Nl#a(<>7W1P>?XT(@!xhppS~DYznTVrYZ^Q?4gT^p z`1hy5sl7g2-bC&5c|nvn;40?-=YjihdDB(^#pKTeU+fh|`FUJ()j|~v+RPeqgpz6Q z=ualhv=vTSrm4)9&dp{tmWu6&r>$73b8}N)G7;+xclX6?UUAOWwvJ?9IuunV=lXTd zYKSM(W_LIpt8Yoft>!@JKHwczU%I8k3Irm(;go5m!f`9z5($O209y&+c*IPmtyC=B z-xBFGLmjKk_Dzvu_L{_AeI%K&&=j;Ha*rA5y~pec$NK<82E%69iVenzi=iLkhW3Z! z31;`i6XCx212F}5+KNV&FQ?hCnu-xSx3RTleUn+|uUC>=S;*G;SK07gcbO|8f>e$b zs{(&3ah2g8{VmrBjqeJz5V5E65yUkw9>0oa+Y-hOJoW^J{|x2la%N%tN}4TexxdKX zEapL7SNBR`BICX_0n&@O>;_71V4c@=`v|_e+|iGB-)` zgbOdXRrTL-7e3R4=UlkdLF@?^{wbIIqzj+r!eubD$gG`hK^Jn)?VaSeHC#2#y3@5+tl=C;PMr}RSi<*_LFMs22{8P)PJ>~!Mlz-tV z|IAZz3@Re{N)dX$-wH(cT#fj0IjaM%KLquk!Q%5u#^%{MCydK@kBOS@$Lo zW2Ew@MAlAP^AWlyD38!xnIErSw43A(Gll&3wEU{?5LtG?$W9oCPTy)AnyfI&jvB9C zu;#%)j15%f$L)5DKE-$Uy1zv{RAzaXF|=+WB$bhU*P3k%uiJn^?!^oFd@hRU9j)92 zxw380b?PVmllOy3nJ(yc7!RL10TWSUc*c!OwXIMtFlLNA9)y%Jvd2dx`!geZEO#e5 z(m{^pD$tK;_^Wt+G_psL%deo^vE2Re;K%#4tz)^{P%yI3gMEwzvv1_O2pp+=&QU$W zs((hR^o&h*svXrw3#tok)o(khSynC6(ud)o_8j_0wVk6z_U+t}--#EE1ylb<;7H}5 zW9o}+>W5kyrX&cpg&=If=r)EQ*U0dm2F-W_?a$p)sO?KmZU2skeF_fR942u1aUIX$ zJxdFUCc=6U$}roNiyF)4>3*;(bGK@ZZIdq^mfkY5yCx6PbN{viG<2%Q$W9vBGe-6$ zBO979vR#wL2+?D?H(}bP4bkkb^V!Vg(5~}knOh#-HJQ(2Ak`rVo!s=FpVu)tznuK0 zUb{szj$%-r(AcruUWkkqtp1p6{DkIw?i*;7%QHA@WHS@SaA*=ugF`i=9dtr5M=TKAvr@$d>Yh?WY}?UwgB^4YE&>e3Cr!44%~#1ruDgX$XfLG|3wL{IhmV>%<;#d;EUjoW2CFOS2-&_vlIW0@a~l3N%< z_FTpoI``Xr-qjZEBO1wrWekJmB8NvpfC~;kN1=2%{GnYQf3HnkdKWX#aTpFv^cd9% zEFqPrmys%31Sjm#)P$E)?u0uC|(lui0 zOlh_cU4zM0SmboqV8G~^qQiKK8b;%1xQjyQOv8i!>$cT_(bC}UXIe3-pNAJ{f+m~j zMB~sn7IpL~`gNoWS7@A9(ueJ;#=SFsGpaI%-7}u5TR^^JCPCaDLs6|xb;01V9BmC6 z!?^n#uKp(caH~U8Myg@Y0d#&16fvBgf$PjSYP)9IQ?)S5*ov(KkE#k!1gN`|N)aeU zpcH{p1WFMoMc|J*0`!XurM66ecP!;g_V~JYTCub*p713!glyWUKBXEXRwmrXAj!r0 zV*Rm%mG*tXS42M*vofhfEDCeJ9Wko|KOAX8)0-)xVWtPd39Uv|sIqG-ZaEHm4KC~b ze0~NVBHsc1Jm^`_X3)-we4d``)}6`cuS3(``yihWf?fdK4!Z2aeEtaDW4{La4(OAh zcSG-opbvt+4Ehx4dC(t$HlEGr{}a>%Jr9}!-3>c`3Azt-`A7Nu7^wP9K0gk+7!*H4 zsRXDG^exb4(ChvupO1nDK_3C_27MZoe_m2$4{T9ogEeK>&YoE{ih2mAZy&a!T{nTM z=9%_^UE4L~R%V z?{6?hu14OGxvk&>#r_HK@#A1o#oO;q@u} zmmPi$#?S(cJ>7}Y#xED@uLXZ0_^ng)o3wxrSUdO|z)!mQp`nWMaKVNJna3cbe}a=b zAagH7C`R7|e?Ry%)|?o9rJ#QR`~%?M;O5^|;J*ew&8K4hME1{uzYYELCAWV0W^I7@ z^Dr;I0Y1%hr~Y=^K0&2aia;p>r3jQFP>Mh)0;LH2F-1VWGn4Pi;)z3=E%6Dzo+OT|9j4vAPB;T>oa~36fwx{&b1^bb4Kc2lP z$v0d}IV0b0onXFvb9M*&H_KL2?2gjU$BYqSHMN(&`@$ojPNPiey@Zl{`}SG8=r}0& zBs(I0S8@IF4Vl!h-(g@w2yZ5>*e&H2Bmmgq0_UUzbhWPad zrq1`>9=o;t@)l&;&U8D|0j9f|dekquSQWHIH#RkW!MC)lJCm?7zCfLSrN4GXAftP48pHm9aI*ipei2nlzY78Tka1ZbWL{4fpP6V#8Q$vm>z6esyHYWK=Ie%E?R z2LQhu{t$kW$D7_`0R9}+TYim_`6H%|ke%|mO4et=U()uaRG|Mo4NeOu`TxpiY+3!@ zkF1|@Z@bQ-;p8WRq0>z^Q4d1CSp3J>&aXMnvTpvzH1Z!2UXHtwXT3QGoZ{f^$C>bl z{LgaydHGji#$RB33H$j2;KjbbKg9CSavT=3{Au7cepHYFCg)hbo7*M#qxHC-VbrR- z8mG!{1Wtaw!GfS?4`RiGpiCT{Pi|D#Nx?STn>RUVx znW(#glb?g^&&{m#7;vB40O$XX=HzRbUA`QuC(%jLP><;&tQ7f5Bo8io$ ziX{67`eIfr>aQ&>VdB6-+zh8u;hiS-sZ%>uPb%CWGozXQ{+&>9l}t!lQ$^!DYS);7 zT7P6l+6r$TTjBNNf(+IU=<8(VK* z-`EP3Ot;x$@{x)STN*cq%uri19VRhx+{X+VrVSd+Ta?-S<+jGnElrO0?He|9ggVX6 z#`UcsXl!lU)M3@r{&-8YwLj2MU%z@yeSPhkm1}C(u38mX9at3#t&An2`XEW$rnNY} zlE~ng$6#QMX(p1Xegrd)gDYVKw52`ziMB%ZbUMYhrjM}n2lXKjKFwjqqG2mcZhfMq zrU2>-p(!}}(sDb_nMC6WGn0<#GcmuvpG|e4Et@(56jVCYBBxetZ*e$<&Y_rF19kkP zg#L-)6Md!;mQI?z=w3SCLn8~2=bVgF1x~%VPt-WLUG*h&+^TLID@xeG{sTlLAQ8E| z6Gc-y8a4v8R?-Ydqp4Ur-4YG8cbay*r=BWunvH1K^Txy}DH-uw+X@Yf-FrzRFx0(e zQ(K2wYye|k)S97C$67rz3YLq>Udmt}7~lg~`oNSY0GH5#^=bUxMJ7y|7WP>xp0ij- zqA?4nt^%t~Gd5^pX#zi)3h#)uOgE9&nwwdaY+_c!*4lwo9I9B~a764A7J|@yojNcb z*5%ZW(_?f>4gFqcn#Fs*JDqkl^7oH_R8|_#!8kg|=IMNOo6oc4g=<#ke>?j$U~7at{@Qn&J_ zclKN1Zcr;_(_YD8K*dr6%AZJDF+c7X{()3-AeORrx}fe%9EW1#QHC1Vx2&L>xEAjX zr+bw@x-)?)Y-*)!&V8{|8u!O31rxkftS?LooEzw~lwU6veq{YSk|CEJF5L$@^~kE+7`aTv4JF>aL~PZIP)c9Dmt%YbO#1+NNt zx3iP?e7o$sFk8z?p6H+A!lRR;KixTQlBFd38+J*l)yTN@z2~`?h#*ruCQnK9p6u3_ z_jIAYDbn=LJ2l;jB7X8tO8aF$N$64*$77~WUjM^DX)j6iWxq*iI|Ubse59=C%f3$> z7+ysjec8VfD*IIs(TUATQQeCi?FC8wvi~Dg`cM29IiU|hpZ1odEc;7Bw{uMrWAUG1 zHG&MqRP<%POQ`I3N&TWP?f(|*uNQ+Nz;u*x(kC5Zi~e5&qnL<&Jlfldsq8B!%UGV1M5;55)lmCCg8!yopdIq}HE`8ar-n{}KlE~SmLRs+N zfk9(e>X-d2`TsN|Fw%{pCw~0^y3~G0pEoS_@{9H$c}tT?L)ZCe%7Kf~wm<@XTL5x=GUe-ZskNdN!< delta 2650 zcmZ`*eM}Tb6rb5+y*mWC1@wR-w-BUI<&G}}G#BpRPR}o-ks3>E4lIb+3J6DHjLH$K zflwOYCH88Xls0Vx);1DMW7C?@)@r{J<&Roz(u6kJU`i}k{ev{N+cilm*(>~G%h zeay_8eY1CcfR2XgU`pbojp)r|0NGzQ^vwIQ^JYVwHxK>fjGdAUX-a}b>hx}-hA5Em z5R6`eJ)Cdo!|o?>kcYVmJ=Cs5xK)H(MPQ6xOH5Y{pT`JkQU;7lp3MIX8|GodU^TTR zm#3wVdfzHOFtW2nYc4Oj^xNs<7I@W^yF3;Hixmp3a8`IPD8bnQYu*os-z?4k) zGl`Dq-1(Rk2*(t_*NAhb6!{m7kp<&Y61@nD+(cWTNA3dik}ci4cL$4|C1lgK&6QQb zB4_dAVUcq!dYOnsV)P%ynJJE#%o>yC5Lpsc?4i723qhTgEfyO^OAV1HnOqn;jY&3< z<)~*|S6YjeY(pcJJBYMn6upfo2KMqq3;t}P!4EFt>!IAdI+dkMw3`*ih#fA4V`h6Q z8;LfvKx>8%&2~6vj*FjPz*^yF^jRt#5YKZhd(9+pTkP?s1=>j{wAkUWC63AyH+y)ltZ^ZS`rZcA>N{!Qmt1enQ4y+NzvIa>gQg#Ugo`3+8QkTkbmvd9cr! z;CMx!Juu)-MZ>^=oXDVjKD0d0FW*3;z{$ywRhv$5gqh)&9MS$RQx2^C6<$)(>3h(t zWaQmJU(&Vuxxfi`9coFS?@lN#(CddF;5a|1&-#?3V-;Xoj88TX|=C(+lM)IovA$tLSuk80f3`7D0 z$zP#F0{#B!0KFdQ=V8-%*hU^k9guIw8*^fu9mt-*I2dAsfA;9d7YTu>q}==;xK}#! z8jz1+>EfDj^qH=>f?0ZA=dRA&`WteRGbou*Q>M)mBbGh#uo_cW-F0wpQ-|8NPi^RE z?mF1i8tPoHl2}5YGHvkSGTD0&GpA`G#9G8R5gQRNAij&Z2XP>(Y2PE3{i$iQh_4~W zQ8=ENwbFwoIY<$oSuc}p9F}13{X^4g;8JGxvp5h1#O#u>v$;l*_aKUvj)PaRe}Vx& zV5EPU?UYm%zeIW`&Wwe_^yjeqqHrWTZ3$b>k?6#k>>C!`>S0rZs5Mbr^}P0YY3hZJ zK3LR7(>TU)6jhE#qPNSuMpL;QhN*l99fWAUD|6nsKlCe?sc-TU5|z6KyiS)A;g!ZO zNm36zPKOfV_d5qN2;(RflNv<_XP*mlN6>r+*L^x2jk)}hm!U5N-Y>Frp zfj)> #include +#include using namespace std; int main() { @@ -12,6 +13,9 @@ int main() { << "\nThe value of aPtr is " << aPtr; cout << "\n\nThe value of a is " << a << "\nThe value of *aPtr is " << *aPtr << '\n'; + + std::shared_ptr < std::array > b = std::make_shared< std::array > (); + std::cout << (*b)[3] << " " << b->at(5) <<"\n"; } diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp index a2e2fc7..f24a542 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp @@ -1,24 +1,49 @@ // fig07_03.cpp // Pass-by-reference with a pointer argument used to cube a // variable's value. -#include #include -void cubeByReference(int* nPtr); // prototype +void cubeByValue(int x); +void cubeByReference(int& x); // prototype +void cubeByPointer(int* nPtr); int main() { int number{5}; std::cout << "Original value of number is " << number << "\n"; - cubeByValue(number); // pass number by value to cubeByValue + cubeByPointer(&number); // pass number by value to cubeByValue std::cout << "New value of number is " << number <<"\n"; + int number1{5}; + + std::cout << "Original value of number is " << number1 << "\n"; + cubeByReference(number1); // pass number by value to cubeByValue + std::cout << "New value of number is " << number1 <<"\n"; + + + int number2{5}; + std::cout << "Original value of number is " << number2 << "\n"; + cubeByValue(number2); // pass number by value to cubeByValue + std::cout << "New value of number is " << number2 <<"\n"; + + + + } // calculate cube of *nPtr; modifies variable number in main -void cubeByReference(int* nPtr) { +void cubeByPointer(int* nPtr) { *nPtr = *nPtr * *nPtr * *nPtr; // cube *nPtr } +void cubeByValue(int x) { + x = x * x * x; // cube *nPtr +} + +void cubeByReference(int& x) { + x = x * x * x; // cube *nPtr +} + + /************************************************************************** * (C) Copyright 1992-2022 by Deitel & Associates, Inc. and * * Pearson Education, Inc. All Rights Reserved. * diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_06.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_06.cpp index 51537d7..eb5941f 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_06.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_06.cpp @@ -1,6 +1,5 @@ // fig07_06.cpp // C++20: Creating std::arrays with to_array. -#include #include #include @@ -9,8 +8,9 @@ int main() { const auto display{ [](const auto& items) { for (const auto& item : items) { - std::cout << fmt::format("{} ", item); + std::cout << item << " "; } + std::cout << "\n"; } }; @@ -19,14 +19,12 @@ int main() { // creating a std::array from a built-in array const auto array1{std::to_array(values1)}; - std::cout << fmt::format("array1.size() = {}\n", array1.size()) - << "array1: "; + std::cout << "array1.size(): " << array1.size() << " array1: "; display(array1); // use lambda to display contents // creating a std::array from an initializer list const auto array2{std::to_array({1, 2, 3, 4})}; - std::cout << fmt::format("\n\narray2.size() = {}\n", array2.size()) - << "array2: "; + std::cout << "array2.size(): " << array2.size() << " array2: "; display(array2); // use lambda to display contents std::cout << '\n'; diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp index f7e8d42..23b666c 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp @@ -2,19 +2,38 @@ // Sizeof operator when used on a built-in array's name // returns the number of bytes in the built-in array. #include +#include size_t getSize(double* ptr); // prototype +size_t getSize_span(std::span ptr); + +void print_arr(auto a){ + for (auto x: a) + std::cout << x << " "; +} + +void fill_arr(auto& a){ + for (auto x: a) + x = 0; +} + int main() { double numbers[20]; // 20 doubles; occupies 160 bytes on our system + auto numbers_span {std::span(numbers)}; + fill_arr(numbers_span); std::cout << "Number of bytes in numbers is " << sizeof(numbers)<<"\n"; - std::cout << "Actual nukber of elements : " << sizeof(numbers)/sizeof(double) << "\n"; + std::cout << "Actual number of elements : " << sizeof(numbers)/sizeof(double) << "\n"; std::cout << "Number of bytes returned by getSize is " << getSize(numbers) << "\n"; + + std::cout << "Actual number of elements returned by getSize_span is " << getSize_span(numbers) << "\n"; + + print_arr(numbers_span); } // return size of ptr @@ -22,6 +41,11 @@ size_t getSize(double* ptr) { return sizeof(ptr); } +size_t getSize_span(std::span ptr) { + return ptr.size(); +} + + /**************************************************************************