Outline of C++
مندرجہ ذیل خاکہ سی + + کے جائزہ اور ٹپیکل گائیڈ کے طور پر فراہم کیا گیا ہے: سی + + ایک مستحکم ٹائپ شدہ، فری فارم، ملٹی پیراڈائم، مرتب شدہ، عمومی مقصد کی پروگرامنگ زبان ہے۔ اسے ایک درمیانی سطح کی زبان سمجھا جاتا ہے، کیونکہ یہ اعلی اور نچلی سطح کی زبان کی خصوصیات دونوں کے امتزاج پر مشتمل ہے۔ اسے بجرن سٹروسٹرپ نے 1979 میں بیل لیبز میں سی زبان میں اضافے کے طور پر تیار کیا تھا۔ سی + + کس قسم کی زبان ہے؟ سی + + کو مندرجہ ذیل سب کے طور پر بیان کیا جا سکتا ہے: پروگرامنگ زبان-مصنوعی زبان جو مشین، خاص طور پر کمپیوٹر تک ہدایات پہنچانے کے لیے بنائی گئی ہے۔ پروگرامنگ زبانوں کو ایسے پروگرام بنانے کے لیے استعمال کیا جا سکتا ہے جو مشین کے رویے کو کنٹرول کرتے ہیں اور/یا الگورتھم کو درست طریقے سے ظاہر کرتے ہیں۔ مرتب شدہ زبان-پروگرامنگ زبان جو مرتب کرنے والوں کے ذریعے نافذ کی جاتی ہے (مترجم جو سورس کوڈ سے مشین کوڈ تیار کرتے ہیں)، اور ترجمانوں کے ذریعے نہیں (سورس کوڈ کے مرحلہ وار ایگزیکٹوز، جہاں کوئی ترجمہ نہیں ہوتا ہے)۔ عام مقصد کی پروگرامنگ زبان-پروگرامنگ زبان جو مختلف قسم کے ایپلی کیشن ڈومینز میں سافٹ ویئر لکھنے کے لیے استعمال کی جاتی ہے۔ انٹرمیڈیٹ زبان-کمپیوٹر پروگراموں کے تجزیے میں مدد کے لیے بنائی گئی ایک تجریدی مشین کی زبان۔ یہ اصطلاح مرتب کرنے والوں میں ان کے استعمال سے آتی ہے، جہاں ایک مرتب پہلے کسی پروگرام کے سورس کوڈ کا ترجمہ کوڈ کو بہتر بنانے والی تبدیلیوں کے لیے زیادہ موزوں شکل میں کرتا ہے، ہدف مشین کے لیے آبجیکٹ یا مشین کوڈ تیار کرنے سے پہلے ایک درمیانی مرحلے کے طور پر۔ آبجیکٹ پر مبنی پروگرامنگ زبان-"آبجیکٹ" پر مبنی پروگرامنگ زبان، جو ڈیٹا ڈھانچے ہیں جو ڈیٹا پر مشتمل ہوتے ہیں، فیلڈز کی شکل میں، جنہیں اکثر صفات کے نام سے جانا جاتا ہے ؛ اور کوڈ، طریقہ کار کی شکل میں، جسے طریقے کہا جاتا ہے۔ کسی آبجیکٹ کے طریقہ کار آبجیکٹ کے ڈیٹا فیلڈز تک رسائی اور ان میں ترمیم کر سکتے ہیں۔ آبجیکٹ پر مبنی پروگرامنگ میں، کمپیوٹر پروگراموں کو ایک دوسرے کے ساتھ تعامل کرنے والی اشیاء سے بنا کر ڈیزائن کیا جاتا ہے۔ جامد طور پر ٹائپ شدہ پروگرامنگ زبان عام C + + تصورات نام کے حل کے دلائل پر منحصر نام کی تلاش-فنکشن کال کو دیئے گئے دلائل کی اقسام کے لحاظ سے غیر اہل فنکشن نام کی تلاش پر لاگو ہوتا ہے۔ اس رویے کو کوینگ تلاش کے نام سے بھی جانا جاتا ہے، جس کا نام اس کے موجد اینڈریو کوینگ (پروگرامر) کے نام پر رکھا گیا ہے۔ آٹو لنکنگ-سی یا سی + + پروگرام بناتے وقت خود بخود اس بات کا تعین کرنے کا طریقہ کار کہ کون سی لائبریریوں سے لنک کرنا ہے۔ اسے لائبریری کی ہیڈر فائلوں میں #pragma تبصرہ (lib، <نام>) بیانات کے ذریعے چالو کیا جاتا ہے۔ کلاسیں-کلاسیں ڈیٹا ڈھانچے کی اقسام اور ان افعال کی وضاحت کرتی ہیں جو ان ڈیٹا ڈھانچوں پر کام کرتے ہیں۔ ان ڈیٹا ٹائپ کی مثالیں آبجیکٹ کے نام سے جانی جاتی ہیں اور ان میں ممبر متغیرات، مستقل، ممبر افعال، اور پروگرامر کے ذریعہ بیان کردہ اوورلوڈڈ آپریٹرز شامل ہو سکتے ہیں۔ سی + + پروگرامنگ زبان پروگرامرز کو کلاسوں کے استعمال کے ذریعے پروگرام کے مخصوص ڈیٹا ٹائپ کو الگ کرنے کی اجازت دیتی ہے۔ مستثنی ضمانت ہیڈر فائل اندرونی کلاس ون ڈیفینیشن رول غیر واضح پوائنٹر سادہ پرانا ڈیٹا ڈھانچہ تین کا قاعدہ (C + + پروگرامنگ) رن ٹائم ٹائپ کی معلومات ترتیب پوائنٹ سنگل تالیف یونٹ خصوصی ممبر افعال متبادل کی ناکامی کوئی غلطی نہیں ہے ٹیمپلیٹ (C + +) ٹیمپلیٹ میٹاپروگرامنگ کی خصوصیات کلاس غیر متعین طرز عمل ورچوئل فنکشن کالز C اور C + + C + + ٹولچین C + + مرتب کرنے والے C + + لائبریریوں کی مطابقت کے مسائل C + + معیاری لائبریری C + + معیاری لائبریری C + + معیاری لائبریری C + + معیاری لائبریری افادیت کا مجموعہ ہے جو کسی بھی C + + پروگرامر کے استعمال کے لیے C + + کے ساتھ بھیجی جاتی ہے۔ اس میں ان پٹ اور آؤٹ پٹ، ملٹی تھریڈنگ، وقت، باقاعدہ تاثرات، عام کاموں کے لیے الگورتھم، اور کم عام (تلاش کریں، ہر ایک کے لیے، تبادلہ، وغیرہ) شامل ہیں۔ اور فہرستیں، نقشے اور ہیش نقشے (اور سیٹوں کے مساوی) اور ایک کلاس جسے ویکٹر کہا جاتا ہے جو ایک قابل تجدید صف ہے۔ بہت سے دوسرے افعال معیاری لائبریری کے ذریعہ فراہم کیے جاتے ہیں، لیکن بنیادی طور پر اس شکل میں جو تھرڈ پارٹی لائبریری بنانے کے لیے اوپر تعمیر کرنے کے لیے ڈیزائن کیا گیا ہے۔ معیاری ٹیمپلیٹ لائبریری (ایس ٹی ایل) دیگر قابل ذکر لائبریریاں فعال ٹیمپلیٹ لائبریری انکولی مواصلاتی ماحول الگورتھمک کنکال اپاچی سی + + معیاری لائبریری آرماڈیلو (سی + + لائبریری) آرٹیفاکٹور ایشیا سی + + لائبریری اے ٹی اینڈ ٹی ایف ایس ایم لائبریری اے ٹی ایل سرور بال بلٹز + + بوہم کچرا جمع کرنے والے کو فروغ (سی + + لائبریریاں) بورلینڈ گرافکس انٹرفیس بوٹن (پروگرامنگ لائبریری) سی + + اے ایم پی سی جی اے ایل سنڈر (پروگرامنگ لائبریری)-جدید تصور کی صلاحیتوں کے لیے فریم ورک۔ کلین لیب کوڈ سنتھسیس ایکس ایس ڈی کوڈ سنتھسیس ایکس ایس ڈی/ای سی پی پی یونٹ کرپٹو + + سی ٹی پی پی ڈی-بس ڈیٹا بیس مینجمنٹ لائبریری ڈنکم ویئر ایفی (سی + +) ایگن (سی + + لائبریری) جی ڈی اے ایل جی ڈی سی ایم جی این اے سی جی ٹی کے ایم ایم ہوپس 3 ڈی گرافکس سسٹم انٹیگریٹڈ پرفارمنس پرائمیٹوز (آئی پی پی)-انٹیل کے ذریعہ تیار کردہ ملٹی میڈیا اور ڈیٹا پروسیسنگ ایپلی کیشنز کے افعال کی ایک ملٹی تھریڈ سافٹ ویئر لائبریری۔ جوس کاکاڈو (سافٹ ویئر) کے ایف آر لیب-کراس پلیٹ فارم، بہتر آڈیو اور ڈی ایس پی لائبریری۔ لیمون (سی + + لائبریری) لیول ڈی بی لبارک لبلاس لبسیگ + + لبکس (گرافکس لائبریری) لائٹ ایس کیو ایل لائیو 555 لوکی (سی + +) ریاضی دانا لائبریری (ایم کے ایل)-انٹیل کے ذریعہ تیار کردہ سائنس، انجینئرنگ اور مالیاتی ایپلی کیشنز کے لیے بہتر ریاضی کے معمولات کی لائبریری۔ میٹرکس ٹیمپلیٹ لائبریری میٹا کٹ مائیکروسافٹ فاؤنڈیشن کلاس لائبریری آبجیکٹ ونڈوز لائبریری آبجیکٹ پر مبنی خلاصہ ٹائپ ہائیرارکی او ڈی بی (سی + +) او جی آر ای اوپن ایسیٹ امپورٹ لائبریری اوپن انوینٹر اوپن امیج آئی او اوریکل ٹیمپلیٹ لائبریری اورفیو ٹول باکس پی او سی او سی + + لائبریریاں پوڈوفو پوپلر (سافٹ ویئر) پی ٹی کے ٹول کٹ کیو ٹی (فریم ورک) ساؤنڈ آبجیکٹ (ایس این ڈی او بی جے) لائبریری اسٹیپل سمبولک سی + + تھریڈنگ بلڈنگ بلاکس (ٹی بی بی)-سی + + ٹیمپلیٹ لائبریری جو انٹیل کارپوریشن نے ملٹی کور پروسیسرز سے فائدہ اٹھانے والے سافٹ ویئر پروگرام لکھنے کے لیے تیار کی ہے۔ VTD-XML ونڈوز ٹیمپلیٹ لائبریری WxWidgets Xcas Xerces YAAF بھی دیکھیں C + + ملٹی تھریڈنگ لائبریریوں کی فہرست C + + متعدد صحت سے متعلق ریاضی لائبریریوں کی فہرست C + + ٹیمپلیٹ لائبریریوں کی تاریخ C + + کی تاریخ C + + پروگرامنگ زبانیں جنہوں نے C + + C سمولہ اڈا 83 ALGOL 68 CLU ایم ایل اسٹینڈرڈائزیشن ہسٹری C + + 98 کو متاثر کیا-1998 میں، C + + معیارات کمیٹی نے C + + کو معیاری بنایا اور بین الاقوامی معیار ISO/IEC 14882:1998 شائع کیا (غیر رسمی طور پر C + + 98 کے نام سے جانا جاتا ہے)۔ سی + + 03 سی + + 11-آئی ایس او کے ذریعہ 12 اگست 2011 تک منظور شدہ، سی + + 03 کی جگہ۔ یہ نام تفصیلات کی اشاعت کے سال تک زبان کے ورژن کے ناموں کی روایت سے ماخوذ ہے۔ سی + + 14-سی + + کی تازہ ترین تکرار، جس کا اعلان آئی ایس او نے 18 اگست 2014 کو سی + + 11 کی جگہ پر کیا تھا۔ C + + 17-آنے والا ورژن۔ تفصیلات خصوصیت مکمل ہے، اور جائزے کی مدت میں داخل ہو رہی ہے۔ سی + + 20 مثال سورس کوڈ مضامین مثال کے طور پر سی + + کوڈ سی + + اشاعتیں سی + + کے بارے میں کتابیں سی + + پروگرامنگ زبان-جسے وسیع پیمانے پر زبان کی معیاری نصابی کتاب سمجھا جاتا ہے۔ بجرنی سٹروسٹرپ کی طرف سے۔ سی + + کا ڈیزائن اور ارتقاء-سی + + کی پیدائش کے بارے میں بجرنی اسٹروسٹرپ کی ایک کتاب۔ جدید سی + + ڈیزائن-سی + + کا استعمال کرتے ہوئے مختلف ڈیزائن پیٹرن پر آندرے الیگزینڈرسیکو کی ایک کتاب۔ سی + + سی + + رپورٹ کے بارے میں رسالے-سگس پبلکیشنز گروپ کے ذریعہ شائع ہونے والا ایک دو ماہانہ پیشہ ور کمپیوٹر میگزین تھا۔ سی + + شخصیات الیگزینڈر اسٹیپانوف آندرے الیگزینڈرسیکو اینڈریو کوینگ بجرنی اسٹروسٹرپ-ڈینش کمپیوٹر سائنسدان، جو سی + + کی تخلیق اور ترقی کے لیے سب سے زیادہ قابل ذکر ہیں۔ ڈیوڈ ابراہمز ڈگلس سی شمٹ ہرب سٹر جم کوپلین (اکا۔ جیمز او کوپلین) پیٹ بیکر رابرٹ سیسل مارٹن اسکاٹ میئرز سی + + بولیاں سی + + معیاری کمیٹی بولیوں کی حوصلہ شکنی کرتی ہے (اس ترجیح کے ساتھ کہ مسئلہ معیاری لائبریری میں نئی فعالیت کے ذریعے حل کیا جاتا ہے، جیسا کہ متوازی پروگرامنگ کے لیے ملٹی تھریڈنگ جیسے آئٹمز کے ساتھ کیا جاتا ہے)، تاہم کچھ بولیاں مختلف وجوہات کی بنا پر بنائی گئی ہیں (ایسی خصوصیات کو ہٹانے کے لیے جنہیں نافذ کرنا مشکل ہے، پروگرامنگ رجحان کا جواب وغیرہ۔ ): پروگرامنگ زبان کی بولی-(نسبتا چھوٹی) تبدیلی یا زبان کی توسیع جو اس کی اندرونی نوعیت کو تبدیل نہیں کرتی ہے۔ چارم + +-متوازی آبجیکٹ پر مبنی پروگرامنگ زبان جو C + + پر مبنی ہے اور الینوائے یونیورسٹی میں متوازی پروگرامنگ لیبارٹری میں تیار کی گئی ہے۔ چارم + + کو متوازی پروگرام کا اعلی سطحی خلاصہ فراہم کرکے پروگرامر کی پیداواری صلاحیت کو بڑھانے کے مقصد کے ساتھ ڈیزائن کیا گیا ہے جبکہ ایک ہی وقت میں مختلف قسم کے بنیادی ہارڈ ویئر پلیٹ فارمز پر اچھی کارکردگی فراہم کرتا ہے۔ سرایت شدہ سی + +-سرایت شدہ سسٹمز کے لیے سی + + کی بولی، "سرایت شدہ سسٹمز پروگرامرز کو سی + + کا ذیلی سیٹ فراہم کرنے کے لیے بنائی گئی ہے جو اوسط سی پروگرامر کے لیے سمجھنے اور استعمال کرنے میں آسان ہے"۔ ایمبیڈڈ سسٹم-کمپیوٹر سسٹم جو کسی سہولت، مشین، یا ڈیوائس کے لیے مخصوص کنٹرول افعال کے لیے ڈیزائن کیا گیا ہے جس میں اسے پروڈکٹ کے مربوط حصے کے طور پر سرایت کیا گیا ہے۔ سرایت شدہ نظام آج کل عام استعمال میں بہت سے آلات کو کنٹرول کرتے ہیں۔ R + +-اصول پر مبنی پروگرامنگ زبان جو بیل لیبز نے 1990 کی دہائی میں تیار کی تھی، C + + پر مبنی تھی۔ چھلکا C + + متوازی پروگرامنگ سسٹم-C + + مرتب اور متوازی رن ٹائم کوڈ پلے کے ذریعہ ڈیزائن اور جاری کیا گیا ہے جس کا مقصد کوڈ کی متوازی کاری کو آسان بنانا ہے تاکہ یہ ملٹی پروسیسر یا ملٹی کور سسٹمز پر مؤثر طریقے سے چل سکے۔ سی + + زبان کی توسیعات پہلو سی + +-سی اور سی + + زبانوں کی پہلو پر مبنی توسیع۔ سی + +/سی ایل آئی-مائیکروسافٹ کی زبان کی تفصیلات کا مقصد سی + + کے لیے منظم ایکسٹینشنز کو ختم کرنا ہے۔ یہ ایک مکمل نظر ثانی ہے جس کا مقصد پرانے منظم C + + نحو (جو اب فرسودہ ہے) کو آسان بنانا ہے۔ سی + +/سی ایل آئی کو ایکما نے ای سی ایم اے-372 کے طور پر معیاری بنایا ہے۔ یہ فی الحال صرف ویژول اسٹوڈیو 2005، 2008، 2010، 2012، 2013 اور 2015 (ایکسپریس ایڈیشن میں بھی شامل) میں دستیاب ہے۔ کامن لینگویج انفراسٹرکچر-مائیکروسافٹ کے ذریعہ تیار کردہ اور آئی ایس او اور ای سی ایم اے کے ذریعہ معیاری کردہ کھلی تفصیلات جو قابل عمل کوڈ اور رن ٹائم ماحول کو بیان کرتی ہیں جو مائیکروسافٹ. نیٹ فریم ورک اور مفت اور اوپن سورس نفاذ مونو اور Portable.NET کا بنیادی حصہ ہیں۔ سی + +/سی ایکس-مائیکروسافٹ کے سی + + مرتب کرنے والوں کے لیے زبان کی توسیع جو سی + + پروگرامرز کو نئے ونڈوز رن ٹائم پلیٹ فارم، یا ون آر ٹی کے لیے پروگرام لکھنے کے قابل بناتی ہے۔ یہ نحو اور لائبریری تجریدوں کا ایک مجموعہ لاتا ہے جو COM پر مبنی ون آر ٹی پروگرامنگ ماڈل کے ساتھ اس طرح انٹرفیس کرتا ہے جو مقامی C + +-پروگرامرز کے لیے فطری ہے۔ سلک پلس-سی اور سی + + زبانوں کی ملٹی تھریڈڈ متوازی کمپیوٹنگ توسیع۔ CUDA C/C + +-Nvidia گرافکس کارڈز کا استعمال کرتے ہوئے متوازی کمپیوٹنگ کے لیے مرتب اور توسیعات۔ سی + + کے لیے منظم ایکسٹینشنز-سی + + سے انحراف کے فرسودہ مائیکروسافٹ سیٹ، بشمول گرائمیکل اور نحو ایکسٹینشنز، مطلوبہ الفاظ اور صفات، تاکہ سی + + نحو اور زبان کو. NET فریم ورک میں لایا جا سکے۔ ان توسیعات نے سی + + کوڈ کو منظم کوڈ کی شکل میں کامن لینگویج رن ٹائم (سی ایل آر) کو نشانہ بنانے کے ساتھ ساتھ مقامی کوڈ کے ساتھ باہمی تعاون جاری رکھنے کی اجازت دی۔ سی + +/سی ایل آئی کے ذریعہ سپرسڈ کیا گیا۔ کمپیوٹر پروگرامنگ کا خاکہ بھی دیکھیں سافٹ ویئر انجینئرنگ کا خاکہ حوالہ جات بیرونی لنکس C + + C + +