C++/CX
সি + +/সিএক্স (সি + + কম্পোনেন্ট এক্সটেনশন) হল মাইক্রোসফটের উইন্ডোজ রানটাইম প্ল্যাটফর্মের জন্য একটি ভাষা অভিক্ষেপ। এটি সি + + সংকলকদের জন্য একটি ভাষা সম্প্রসারণের রূপ নেয় এবং এটি সি + + প্রোগ্রামারদের উইন্ডোজ রানটাইম (উইনআরটি) এপিআই কল করে এমন প্রোগ্রাম লিখতে সক্ষম করে। সি + +/সিএক্স সি + +/উইনআরটি ভাষা অভিক্ষেপ দ্বারা প্রতিস্থাপিত হয়, যা সি + + ভাষার সম্প্রসারণ নয়; বরং, এটি একটি সম্পূর্ণ মানসম্মত আধুনিক আইএসও সি + + 17 হেডার-ফাইল-ভিত্তিক গ্রন্থাগার। ভাষা এক্সটেনশনগুলি সি + +/সিএলআই থেকে বাক্য গঠন ধার করে কিন্তু কমন ল্যাঙ্গুয়েজ রানটাইম এবং পরিচালিত কোডের পরিবর্তে উইন্ডোজ রানটাইম ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম নেটিভ কোডকে লক্ষ্য করে। এটি সিনট্যাক্স এবং লাইব্রেরি বিমূর্ততার একটি সেট নিয়ে আসে যা সি + +/সিএলআই পরিচালিত এক্সটেনশন কোডারগুলির জন্য স্বজ্ঞাত এমনভাবে সিওএম-এর ডাব্লুআরএল উপসেট-ভিত্তিক উইনআরটি প্রোগ্রামিং মডেলকে প্রজেক্ট করে। নিম্ন স্তরের উইন্ডোজ রানটাইম সি + + টেমপ্লেট লাইব্রেরির (ডাব্লুআরএল) মাধ্যমে স্থানীয় আইএসও সি + + থেকে উইন্ডোজ রানটাইম কল করা সম্ভব। যাইহোক, ডাব্লুআরএল সি + +/উইনআরটি দ্বারাও প্রতিস্থাপিত হয়। এক্সটেনশন সিনট্যাক্স সি + +/সিএক্স উইন্ডোজ রানটাইমের জন্য প্রোগ্রামিংয়ের জন্য সিনট্যাক্স এক্সটেনশন প্রবর্তন করে। সামগ্রিক অ-প্ল্যাটফর্ম-নির্দিষ্ট বাক্যবিন্যাস সি + + 11 মানের সাথে সামঞ্জস্যপূর্ণ। উইনআরটি অবজেক্টগুলি তৈরি করা হয়, বা সক্রিয় করা হয়, রেফ নিউ ব্যবহার করে এবং সি + +/সিএলআই থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হ্যাট নোটেশন দিয়ে ঘোষিত ভেরিয়েবলগুলিকে বরাদ্দ করা হয়। একটি উইনআরটি পরিবর্তনশীল কেবলমাত্র একটি পয়েন্টার থেকে ভার্চ্যুয়াল মেথড টেবিল এবং বস্তুর অভ্যন্তরীণ তথ্যের পয়েন্টার। রেফারেন্স গণনা একটি উইনআরটি বস্তু রেফারেন্স গণনা করা হয় এবং এইভাবে ভাগ করা _ পিটিআরএস-এ আবদ্ধ সাধারণ সি + + বস্তুর মতো একইভাবে পরিচালনা করে। কোনও বস্তু মুছে ফেলা হবে যখন কোনও অবশিষ্ট রেফারেন্স থাকে না যা এটির দিকে নিয়ে যায়। আবর্জনা সংগ্রহের কোনও ব্যবস্থা নেই। তা সত্ত্বেও, ভবিষ্যতের সম্ভাব্য ব্যবহারের জন্য 'জি. সি. নিউ' শব্দটি সংরক্ষিত রাখা হয়েছে। ক্লাস রানটাইম ক্লাস বিশেষ ধরনের রানটাইম ক্লাস রয়েছে যার মধ্যে কম্পোনেন্ট এক্সটেনশন গঠন থাকতে পারে। এগুলিকে কেবল রেফ ক্লাস হিসাবে উল্লেখ করা হয় কারণ এগুলি রেফ ক্লাস ব্যবহার করে ঘোষণা করা হয়। পাবলিক রেফ ক্লাস মাইক্লাস {}; আংশিক ক্লাস সি + +/সিএক্স আংশিক ক্লাসের ধারণাটি প্রবর্তন করে। বৈশিষ্ট্যটি একটি একক শ্রেণীর সংজ্ঞাকে একাধিক ফাইল জুড়ে বিভক্ত করার অনুমতি দেয়, মূলত এক্সএএমএল গ্রাফিকাল ইউজার ইন্টারফেস ডিজাইন সরঞ্জামগুলিকে একটি পৃথক ফাইলে স্বয়ংক্রিয়ভাবে কোড তৈরি করতে সক্ষম করে যাতে বিকাশকারীর লেখা যুক্তিটি ভেঙে না যায়। অংশগুলি পরে সংকলনে একত্রিত করা হয়। সি #-এর মতো. নেট ভাষাগুলিতে বহু বছর ধরে এই বৈশিষ্ট্যটি রয়েছে। আংশিক শ্রেণীগুলি এখনও এটিকে সি + + মানদণ্ডে পরিণত করেনি এবং তাই সি + + 20-এও ব্যবহার করা যায় না। একটি ফাইল যা জিইউআই-ডিজাইনার দ্বারা তৈরি এবং আপডেট করা হয় এবং তাই প্রোগ্রামার দ্বারা সংশোধন করা উচিত নয়। আংশিক কীওয়ার্ডটি নোট করুন। //foo.private.h #pragma একবার আংশিক রেফ ক্লাসের ফো {ব্যক্তিগতঃ int আইডি _; প্ল্যাটফর্মঃঃ স্ট্রিং ^ নাম _;}; ফাইল যেখানে প্রোগ্রামার ইউজার-ইন্টারফেস লজিক লেখেন। যে হেডারে ক্লাসের কম্পাইলার-জেনারেটেড অংশটি সংজ্ঞায়িত করা হয় তা আমদানি করা হয়। মনে রাখবেন যে আংশিক কীওয়ার্ডের প্রয়োজন নেই। //foo.public.h #pragma একবার #include "foo.private.h" রিফ ক্লাস ফো {সর্বজনীনঃ int GetId (); প্ল্যাটফর্মঃ: স্ট্রিং ^ GetName ();}; এটি সেই ফাইল যেখানে আংশিক শ্রেণীর সদস্যদের প্রয়োগ করা হয়। //foo.cpp #include "pch.h" #include "foo.public.h" ইন্ট ফুঃঃ গেটআইডি () {রিটার্ন আইডি _;} প্ল্যাটফর্মঃঃ স্ট্রিং ^ ফুঃ: গেটনেম {রিটার্ন নাম _;} জেনেরিক উইন্ডোজ রানটাইম এবং এইভাবে সি + +/সিএক্স রানটাইম-ভিত্তিক জেনেরিক সমর্থন করে। সাধারণ ধরনের তথ্য মেটাডেটাতে থাকে এবং রানটাইমে তাৎক্ষণিকভাবে পাওয়া যায়, সি + + টেমপ্লেটগুলির বিপরীতে যা সংকলন-সময় গঠন করে। উভয়ই কম্পাইলার দ্বারা সমর্থিত এবং একত্রিত করা যেতে পারে। জেনেরিক <টাইপেনাম টি> পাবলিক রেফ ক্লাস ব্যাগ {সম্পত্তি টি আইটেম;}; মেটাডেটা সমস্ত উইনআরটি প্রোগ্রাম মেটাডেটার মাধ্যমে তাদের ঘোষিত ক্লাস এবং সদস্যদের প্রকাশ করে। বিন্যাসটি একই যা কমন ল্যাঙ্গুয়েজ ইনফ্রাস্ট্রাকচার (সি. এল. আই)-এর অংশ হিসাবে প্রমিত করা হয়েছিল, যা. নেট ফ্রেমওয়ার্ক থেকে তৈরি মান। এই কারণে, কোডটি সি + +/সিএক্স, সিএলআই ভাষা এবং জাভাস্ক্রিপ্ট জুড়ে ভাগ করা যেতে পারে যা উইন্ডোজ রানটাইমকে লক্ষ্য করে। রানটাইম লাইব্রেরি সি + +/সিএক্স-এ লাইব্রেরির একটি সেট রয়েছে যা উইন্ডোজ রানটাইমকে লক্ষ্য করে। এগুলি সি + + স্ট্যান্ডার্ড লাইব্রেরি এবং উইনআরটি-র কার্যকারিতা হ্রাস করতে সহায়তা করে। প্রাকপ্রসেসর-ভিত্তিক সনাক্তকরণ আপনি সনাক্ত করতে পারেন যে সি + +/সিএক্স এক্সটেনশন চালু করা আছে কিনা _ _ সিপ্লাসপ্লাস _ উইনর্ট প্রিপ্রোসেসর প্রতীকের অস্তিত্ব পরীক্ষা করে। #ifdef _ _ সিপ্লাসপ্লাস _ উইনর্ট// সি + +/সিএক্স নির্দিষ্ট কোডটি এখানে রয়েছে। #endif উইন্ডোজ রানটাইম রেফারেন্সগুলিও দেখুন সি + +/সিএক্স ডিজাইনের বাইরের লিঙ্কগুলি-ভিজ্যুয়াল সি + + টিম ব্লগ গোয়িং নেটিভ 3: মারিয়ান লুপারুর সাথে সি + +/সিএক্স পর্ব-চ্যানেল 9 উইনআরটি এবং উইনএমডি ফাইলগুলি-মারিয়াস ব্যানসিলার ব্লগ ভিজ্যুয়াল সি + + ভাষা রেফারেন্স (সি + +/সিএক্স) সি + + প্রোগ্রামিং ভাষা পরিবার সি + + কম্পাইলার