C++/CX
C + +/CX (C + + ઘટક એક્સ્ટેન્શન્સ) એ માઇક્રોસોફ્ટના વિન્ડોઝ રનટાઇમ પ્લેટફોર્મ માટે ભાષાનું પ્રક્ષેપણ છે. તે સી + + કમ્પાઇલર્સ માટે ભાષા એક્સ્ટેંશનનું સ્વરૂપ લે છે, અને તે સી + + પ્રોગ્રામરોને એવા પ્રોગ્રામ્સ લખવા માટે સક્ષમ કરે છે જે વિન્ડોઝ રનટાઇમ (વિનઆરટી) એપીઆઈને કૉલ કરે છે. સી + +/સીએક્સનું સ્થાન સી + +/વિનઆરટી ભાષા પ્રક્ષેપણ દ્વારા લેવામાં આવ્યું છે, જે સી + + ભાષાનું વિસ્તરણ નથી; તેના બદલે, તે સંપૂર્ણપણે પ્રમાણભૂત આધુનિક આઇએસઓ સી + + 17 હેડર-ફાઇલ-આધારિત પુસ્તકાલય છે. ભાષા એક્સ્ટેન્શન્સ C + +/CLI માંથી વાક્યરચના ઉધાર લે છે પરંતુ કોમન લેંગ્વેજ રનટાઇમ અને મેનેજ્ડ કોડને બદલે વિન્ડોઝ રનટાઇમ યુનિવર્સલ વિન્ડોઝ પ્લેટફોર્મ નેટિવ કોડને લક્ષ્ય બનાવે છે. તે વાક્યરચના અને લાઇબ્રેરી એબ્સ્ટ્રેક્શનનો સમૂહ લાવે છે જે COM ના WRL સબસેટ-આધારિત વિનઆરટી પ્રોગ્રામિંગ મોડેલને એવી રીતે પ્રોજેક્ટ કરે છે જે C + +/CLI સંચાલિત એક્સ્ટેંશન કોડર્સ માટે સાહજિક છે. નીચલા સ્તરની વિન્ડોઝ રનટાઇમ સી + + ટેમ્પલેટ લાઇબ્રેરી (ડબલ્યુઆરએલ) દ્વારા મૂળ આઇએસઓ સી + + માંથી વિન્ડોઝ રનટાઇમ પર કૉલ કરવો શક્ય છે. જો કે, ડબલ્યુઆરએલનું સ્થાન પણ સી + +/વિનઆરટી દ્વારા લેવામાં આવ્યું છે. એક્સ્ટેંશન વાક્યરચના C + +/CX વિન્ડોઝ રનટાઇમ માટે પ્રોગ્રામિંગ માટે વાક્યરચના એક્સ્ટેંશન રજૂ કરે છે. એકંદરે બિન-મંચ-વિશિષ્ટ વાક્યરચના C + + 11 ધોરણ સાથે સુસંગત છે. ઓબ્જેક્ટ્સ વિનઆરટી ઓબ્જેક્ટ્સ નવા સંદર્ભનો ઉપયોગ કરીને બનાવવામાં આવે છે અથવા સક્રિય કરવામાં આવે છે અને C + +/CLI માંથી વારસામાં મળેલા સંકેત સાથે જાહેર કરાયેલા ચલોને સોંપવામાં આવે છે. ફૂ ^ ફૂ = રિફ ન્યુ ફૂ (); એક વિનઆરટી ચલ એ ફક્ત વર્ચ્યુઅલ મેથડ ટેબલ અને ઓબ્જેક્ટના આંતરિક ડેટાના નિર્દેશક માટે નિર્દેશકની જોડી છે. સંદર્ભ ગણતરી એ વિનઆરટી ઓબ્જેક્ટ સંદર્ભ ગણવામાં આવે છે અને આમ વહેંચાયેલ _ પીટીઆરએસમાં બંધ સામાન્ય સી + + ઓબ્જેક્ટ્સની જેમ જ હેન્ડલ કરે છે. ઑબ્જેક્ટને કાઢી નાખવામાં આવશે જ્યારે તેના તરફ દોરી જતા કોઈ બાકીના સંદર્ભો નહીં હોય. તેમાં કોઈ કચરો સંગ્રહ સામેલ નથી. તેમ છતાં, મુખ્ય શબ્દ gcnew સંભવિત ભાવિ ઉપયોગ માટે અનામત રાખવામાં આવ્યો છે. વર્ગો રનટાઇમ વર્ગો ખાસ પ્રકારના રનટાઇમ વર્ગો છે જેમાં ઘટક વિસ્તરણ રચનાઓ હોઈ શકે છે. આને ફક્ત રેફ ક્લાસ તરીકે ઓળખવામાં આવે છે કારણ કે તેઓ રેફ ક્લાસનો ઉપયોગ કરીને જાહેર કરવામાં આવે છે. પબ્લિક રેફ ક્લાસ માયક્લાસ {}; આંશિક વર્ગો C + +/CX આંશિક વર્ગોના ખ્યાલનો પરિચય આપે છે. આ સુવિધા એક વર્ગની વ્યાખ્યાને બહુવિધ ફાઇલોમાં વિભાજિત કરવાની મંજૂરી આપે છે, મુખ્યત્વે વિકાસકર્તા દ્વારા લખાયેલા તર્કને ન તોડવા માટે XAML ગ્રાફિકલ યુઝર ઇન્ટરફેસ ડિઝાઇન ટૂલ્સને અલગ ફાઇલમાં ઓટો-જનરેટ કોડને સક્ષમ કરવા માટે. ભાગોને પછીથી સંકલનમાં ભેળવી દેવામાં આવે છે. સી #જેવી ડોટ નેટ ભાષાઓમાં ઘણા વર્ષોથી આ સુવિધા છે. આંશિક વર્ગોએ હજુ સુધી તેને C + + ધોરણમાં સ્થાન આપ્યું નથી અને તેથી C + + 20માં પણ તેનો ઉપયોગ કરી શકાતો નથી. એક ફાઇલ જે GUI-ડિઝાઇનર દ્વારા જનરેટ અને અપડેટ કરવામાં આવે છે, અને તેથી પ્રોગ્રામર દ્વારા તેમાં ફેરફાર થવો જોઈએ નહીં. મુખ્ય શબ્દની આંશિક નોંધ લો. //foo.private.h #pragma એકવાર આંશિક રીફ વર્ગ ફૂ {ખાનગીઃ પૂર્ણાંક ID _; પ્લેટફોર્મઃ: શબ્દમાળા ^ નામ _;}; ફાઇલ જ્યાં પ્રોગ્રામર વપરાશકર્તા-ઇન્ટરફેસ તર્ક લખે છે. હેડર જેમાં વર્ગના કમ્પાઇલર-જનરેટેડ ભાગને વ્યાખ્યાયિત કરવામાં આવે છે તે આયાત કરવામાં આવે છે. નોંધ લો કે મુખ્ય શબ્દ આંશિક જરૂરી નથી. //foo.public.h #pragma એકવાર #include "foo.private.h" રિફ ક્લાસ ફૂ {સાર્વજનિકઃ int GetId (); પ્લેટફોર્મઃ: શબ્દમાળા ^ GetName ();}; આ તે ફાઇલ છે જેમાં આંશિક વર્ગના સભ્યો અમલમાં મૂકવામાં આવે છે. //foo.cpp #include "pch.h" #include "foo.public.h" ઇન્ટ ફૂઃ: GetId () {રીટર્ન ID _;} પ્લેટફોર્મઃ: શબ્દમાળા ^ ફૂઃ: GetName {રીટર્ન નામ _;} જેનેરિક્સ વિન્ડોઝ રનટાઇમ અને આમ C + +/CX રનટાઇમ આધારિત જેનેરિક્સને સપોર્ટ કરે છે. સામાન્ય પ્રકારની માહિતી મેટાડેટામાં સમાયેલી હોય છે અને રનટાઇમ પર ત્વરિત હોય છે, જે C + + નમૂનાઓથી વિપરીત હોય છે જે સંકલન-સમયની રચનાઓ હોય છે. બંને કમ્પાઇલર દ્વારા સમર્થિત છે અને તેને જોડી શકાય છે. સામાન્ય <પ્રકારનામ T> જાહેર સંદર્ભ વર્ગ બેગ {મિલકત T વસ્તુ;}; મેટાડેટા બધા વિનઆરટી કાર્યક્રમો મેટાડેટા દ્વારા તેમના જાહેર કરેલા વર્ગો અને સભ્યોને છતી કરે છે. ફોર્મેટ એ જ છે જે કોમન લેંગ્વેજ ઇન્ફ્રાસ્ટ્રક્ચર (સી. એલ. આઈ.) ના ભાગ રૂપે પ્રમાણિત કરવામાં આવ્યું હતું, જે ડોટ નેટ ફ્રેમવર્કમાંથી બનાવેલ ધોરણ છે. આને કારણે, કોડને C + +/CX, CLI ભાષાઓ અને જાવાસ્ક્રિપ્ટમાં શેર કરી શકાય છે જે વિન્ડોઝ રનટાઇમને લક્ષ્ય બનાવે છે. રનટાઇમ લાઈબ્રેરી C + +/CX પાસે લાઈબ્રેરીઓનો સમૂહ છે જે વિન્ડોઝ રનટાઇમને લક્ષ્ય બનાવે છે. આ સી + + સ્ટાન્ડર્ડ લાઇબ્રેરી અને વિનઆરટીની કાર્યક્ષમતાને દૂર કરવામાં મદદ કરે છે. પ્રીપ્રોસેસર-આધારિત શોધ તમે શોધી શકો છો કે C + +/CX એક્સ્ટેંશન _ _ cપ્લસપ્લસ _ વિનર્ટ પ્રીપ્રોસેસર ચિહ્નના અસ્તિત્વનું પરીક્ષણ કરીને ચાલુ છે કે નહીં. #ifdef _ _ cપ્લસપ્લસ _ વિનર્ટ// C + +/CX વિશિષ્ટ કોડ અહીં જાય છે. #endif વિન્ડોઝ રનટાઇમ સંદર્ભો પણ જુઓ C + +/CX ડિઝાઇનની અંદરની બાહ્ય કડીઓ-વિઝ્યુઅલ C + + ટીમ બ્લોગ ગોઇંગ નેટિવ 3: ધ C + +/CX એપિસોડ વિથ મેરીયન લુપારુ-ચેનલ 9 વિનઆરટી અને વિનએમડી ફાઇલો-મારિયસ બેનસિલાના બ્લોગ વિઝ્યુઅલ C + + લેંગ્વેજ રેફરન્સ (C + +/CX) C + + + પ્રોગ્રામિંગ લેંગ્વેજ ફેમિલી C + + કમ્પાઇલર્સ