From 7cf7f61340dae7d30a1f1631fd70bf77b7d07d70 Mon Sep 17 00:00:00 2001 From: polymurph <eddyed.k@gmail.com> Date: Sun, 1 Aug 2021 17:15:12 +0200 Subject: [PATCH] layed out basic example structure of CRTP --- .../pin_modleing_with_CRTP/main.cpp | 27 +++++++++++++++++- .../pin_modleing_with_CRTP/runtest | Bin 17952 -> 18216 bytes 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/scribbles_and_notes/pin_interface_CRTP_style/pin_modleing_with_CRTP/main.cpp b/scribbles_and_notes/pin_interface_CRTP_style/pin_modleing_with_CRTP/main.cpp index 0c05c7f..4bbbd67 100644 --- a/scribbles_and_notes/pin_interface_CRTP_style/pin_modleing_with_CRTP/main.cpp +++ b/scribbles_and_notes/pin_interface_CRTP_style/pin_modleing_with_CRTP/main.cpp @@ -14,7 +14,6 @@ template <typename Derived> struct PinBase { - void set(bool logic) { static_cast<Derived*>(this)->setImp(logic); @@ -59,6 +58,11 @@ struct PinBase struct STM32_Pin : PinBase<STM32_Pin> { + STM32_Pin() + { + std::cout << "created STM32_Pin" << std::endl; + } + void setImp(bool logic) { std::cout << "stm32 pin set to " << logic << std::endl; @@ -73,10 +77,21 @@ struct STM32_Pin : PinBase<STM32_Pin> { return true; } + + + void STM32_stuff() + { + std::cout << "STM_32 specific stuff" << std::endl; + } }; struct AVR_Pin : PinBase<AVR_Pin> { + AVR_Pin() + { + std::cout << "created AVR_Pin" << std::endl; + } + void setImp(bool logic) { std::cout << "AVR pin set to " << logic << std::endl; @@ -91,6 +106,11 @@ struct AVR_Pin : PinBase<AVR_Pin> { return true; } + + void avr_stuff() + { + std::cout << "AVR specific stuff" << std::endl; + } }; template<typename T> @@ -106,6 +126,11 @@ int main(void) STM32_Pin pin1; AVR_Pin pin2; + + pin1.STM32_stuff(); + + pin2.avr_stuff(); + foo(pin1); foo(pin2); diff --git a/scribbles_and_notes/pin_interface_CRTP_style/pin_modleing_with_CRTP/runtest b/scribbles_and_notes/pin_interface_CRTP_style/pin_modleing_with_CRTP/runtest index 8f3b9a12dfbb3538947be2d5148fca3bf9597a98..12fab27070845bc5d45643fc5c6be533c96c9ce1 100755 GIT binary patch delta 2188 zcmZuy3v5$W7{2Fr9oyJOA1lq+!rINThpe?_WsE(bt;4$n5QfNWFy>%(YQ|(hB9E{| zlnp2j{)B)*Qj8&s8Xh(fH8qAo6rv$uViY92#H1KShA4z|)bHGT+hVhuG~ai>^L_t+ z?w_->z%Dkpn+=qTgERJ&U(4`o1^Mx7$-r#sz7*xvM|x(YX7;HyU{RE03@Ne@qB8Nj zoK06xIfup^xSd+i*tetn=!M_AT^ECCnm&zaG6eUg>N3)=pt9u8>Q13gbXV#RBQ5zG zo=E-QhIcZVM>&5%;j-=!6MD14W!*0l>C1|G?Sc?~{Yf+``AxHJ-0JFtB<<ARtpK3d zM7pjoDTaP2i!ayZ!xerwf<*riY+Gd8H&Xvk;rsNKA#dvu#daNf_)En$?o`8re%W$4 zp0g)%A3+>Ae`a8z)c>3G_8&T_f6F8ETcZ@(#|ym~&pn*Xw<Q;QW3=3IzpGIRuHeDy zc<}2)uyVAZ-&LaICh;7L=e8$ukqB)xOxXH3Qy#<}EQHTS<Uu69@K;5^WU3RvqYy{= z!qZBj057yDo@0sJhS74xe%Apd=;J|eJb3=u_-N`Qbl7MjlW~W5Yy>n{yfs20V=-%^ zfN=ubM<d1(v#(ST7E1n#F5rUMWqkH&;o#$7P0q=Ty_Rf!+uGHw>sGI_EO=?o6lcr4 zj!w$56c^#GWs1|%-L<-{qrIce(!Fkdd%F<xx?gT;nMZa@(N?fz6OJp()70=oKOVoH zzoOAJ9Mv1Z=YaQsKSTfV9%hQ8I(ax6E!7CZdY}Z{!4bY8pbx0KAC2|_CEy^i2Y3$n zIWW8sB=v7JK%shIDR4c|2mB1!2fPOy1de}zAkYa60~Z6+(69&S1Kt202MPk+wG=WP z>8*CwMQ&?J?%-Wm`HK4F1Do-iPKT{|+Rb21)C+bHtVh;DVEgH&wSXO$-y?WGCwua- z<$t->Pz#ogudKqF;Lg^)D|)k1*Jh64o$~Q(#`-(xyy)q5u}L=Y_03q<lDiOn!3t#- z0-H&#(5`~bqF%5Fm`B#~@!1mBifh3le@3H?|Ev9cyf(i?iis8FrEUh(4O3x}C;cpF zDK^Z4y*b`=3RI-w%A$`e+Qn_Apuu)Q1EgCH8w-%$X%<&ngXPXiBKw}^SDLx=wMv_~ z>KS^!(q;%)c;m#gAcd|}?q(;b!}TIY_Jyl}Euzb=67h!|5~tdhm~s?vof;XyRtkk| zq1>Pd@(e*gRP{%yKTq|4g)7w{juW<-R6&K)bkk*a{Gz79N!3o`I2h1nK&RO8rzby; zc#750o+>k2Mwh0V9k0U4_j4+#Z=b4Lj7l=L&;7)ZJw~}zc1K9{ELJ^p)Gn7){aRA? z4z*U9bN^9SUs3lQOJ&mhY35c3zL)RkNK&?u&jGqcox^gq*Ams=lr-l~RZpIC4-I4g z2YD|?P_5ac*2Hm>pEGK9K&?4R)o=1tih%#7I3`A|FivF?g)%U{>*Q%wLpP9H%n6>D zwpYxqj^9;YXTt`XQBzBS>0`4T4n>#mDw?aEPRDDOjh$O1-&P%+UI(St){S2p7phw~ ztZk9aDB`Z&u3I|ysmczBhf*fe?b`P;<0a58xTda)1#i@^)QH0=<nh=tVrL46f1_s> z`+!b+?E2UNk70<I*KSy8Rb~*wG)>Ustryuv>TRgXm|3l?uF%p@!_@Rc^~&oQa?dRI E4?p&Pa{vGU delta 1546 zcmZ8hZ%kWN6o2=&Wu@Uy``S{QvaKz!jtM0jbYKQZ#~&-s83snD(}^x7?!%l0O|w8` zIv2Xh0-Tu{)+~H5WN{ito-;8L1KZRv7m_6!g%~4djs37-nS7eq=kNBt7Q;<$f9IUv z`Q3Z&dH446IX3YD8`;h$nn!p1W*IO_nK57_nFTFTgXTsJ)XBc_^>{URBgVC`6sJo5 zgX5=h-`t%CEhi6us@%JCwq&OLV0cI|8-@%#VN=HPtd{&+ST-_T_=<t9SQm@>nef`v zk=Xai&lugXRhCWFNK*1*T2&*%&i<gFLzfVWoHcC`9uoIcu^ecOrH0y9L9P{woTkS> zCjCMdyI%Zd`)cgFNbKiiSPMXWp<0MD!GbhR*q#1wHDMY=a^c^M5P65!^M0fy*-pn~ zbM3g6IxAA+TI%{9U+1*8b?s?rOZ>f>E-G~0xwM6<Tq*nMs-uJ|9B245X_|7l`I$7` zc2w|-8IR3Vp)=r$R!Y*-k>Tn=VE4YtMC84D=H!iklqa0mEQ-}^Wn<nV@_NhZsMq_B zBr%U+&qw$wGUn~SRP`>fDy6Cg=yfCT3;4bjRsC4>9(amN(x~u(lfZJsSAlK7s{5*X z1b6~?3OEJ430wx=75v|-YJ~0pupD@7GmJJE=YdCn)4-d+(p3~-pcj39Hb^IZHSBkq z@&()vp*}O}$&OMOhcHi&&F?Yw!@5i>K95P<vYAY58rCv(`L~AOf;Iq83Kv;V^VY(= zmkTzDwMsG9FcUay6EMd|*ZES^&dFBhF*U;SQWva4u(r_~u*9wOXJT<!+eNHm8rJl( zsy_bz6?t1`NwMRv;1je`=E+-wl}eFZzBgZV!i-ijWz<<~p^0iU-T{45{VMNsC~|P# z0Hi;523Zf;cDYyzzfPrjm&{q5y6Rja`Dk5`_m$CjT~N+GJyC%eYX(}ZJICIn*FsOR z2z?dW$^x_y3h?W8;=6-klU>WpGy&!as_{!jQc{n5G+OGx!<Tun)aTFxI($w`A(#7Y zJXjg35vvw{SZC)1Ybp{fg}I$o5vzCYY=AHJnB1_(LBws6TY9NQlUvawF^*GjeT{oS zR}G3gi}9oe(iqLwyEb3a*#|Z)oMo>ep4offqMk9Y>+5y>eUX7`toq4b(Bm8@7FF)u z&><J%_y%?^)zS)1(<wTGyyLoFFIsv|*AMFYZTh-Vp)y|3S20PGx%FlQqqICioDzE) zsM{2x*BhUw#l{BO(eyseHeI1#j1Fa_`B|p?`Dm|!FX3;uHE79x6Wo(`TRYeRnrp4G yWiLV&<CNc4Bd5Gt6<HkON@rU$XDt-#sJC2g(Ab2LZguRoe5hZFO^hrpTmA#YjGwvy