ژانویه
4
2020

سی پلاس پلاس مدرن

سلام. از امروز میخواهم مباحثی رو در وبلاگم شروع به نوشتن کنم که در سالهای اخیر رفته رفته در حوزه زبان برنامه نویسی ++C داره مهم و مهمتر میشه.

همونطور که شاید بدونید زبان سی پلاس پلاس توسط ایزو استاندارد میشه. یعنی قابلیت ها و ویژگی های این زبان برای ورژن های مختلف توسط این بنیاد رسما اعلام میشه و اگر کامپایلری مثلا ادعا کنه کدهای نوشته شده توسط استاندارد ورژن ۹۸ رو میتونه کامپایل کنه باید این موارد رو پاس کنه.

کامپایلرهای متعددی برای C++ ساخته شده. از جمله معروف ترین ها، کامپایلر شرکت ماکروسافت به نام ++Visual C وکامپایلر gnu یا همون ++g هستن. این کامپایلرها درست مثل هر نرم افزار دیگه ای در حال Develop هستند و ورژن های مختلفی دارن.

اگر ورژن های مختلف این کامپایلر ها رو بررسی کنیم میبینیم که همه یا تعدادی از موارد مربوط به استانداردهای سی پلاس پلاس رو در ورژن های مختلفشون ساپورت میکنند.

حالا میرسیم به این بحث که چه استانداردهایی (چه ورژن هایی) از زبان سی پلاس پلاس تاکنون ایجاد شده.

تصویر بالا ورژن های مختلفی که ++C تاکنون داشته رو نشون میده. پایین تصویر برخی از ویژگی هایی که در هر ورژن به زبان اضافه شده آورده شده. شماره استاندارد همون شماره سال ثبت شده استاندارد هست. استانداردی که همگی باهاش کار کردیم استاندارد ۹۸ هست.

در استاندارد ۱۱ انقلابی در زبان ++C و کتابخانه استاندارد ین زبان (STL) به وجود آمد که همین انقلاب سبب شده به ورژن های ۱۱ به بعد این زبان ++Modern C هم گفته بشه. در این ورژن قابلیت های مهمی مثل Multithreading، اشاره گر های هوشمند و تعریف جدید برای کلمه کلیدی auto اضافه شده که این قابلیت ها سبب امن تر شدن، سریعتر شدن و حمل پذیرتر شدن برنامه های نوشته شده با این زبان خواهند شد. از ورژن ۱۱ به بعد هر سه سال یک مرتبه یک ورژن جدید معرفی شده که شامل قابلیت های جدیدتر و توسعه یافته تری نسبت به ورژن قبلی بوده.

برای ما به عنوان برنامه نویس ++C دونستن اینکه با چه استانداردی قراره کدنویسی کنیم مهم هست. چون نوشتن برنامه بر اساس استانداردهای بالاتر امکان کامپایل در کامپایلرهایی که اون ورژن رو ساپورت نمیکنن وجود نداره و برنامه نویس دچار مشکل خواهد شد. همچنین در صورت ساپورت استانداردهای بالاتر میتونیم از قابلیت هایی که وجود دارد برای بهتر نوشتن برنامه هامون استفاده کنیم.

حالا چطور بفهمیم که کامپایلری که در حال استفاده از اون هستیم چه ورژنی از زبان رو ساپورت میکنه؟

یک راه، پیدا کردن ورژن کامپایلر مورد استفادتون و گوگل کردن ویژگی های اون هست. به طور مثال برای کامپایلر ++g در این صفحه توضیحات کاملی در این رابطه وجود داره. راه حل دیگه چاپ متغیر __cplusplus با دستور cout هست. خروجی چاپ این ماکروموارد زیر هست.

این به این معنی هست که اگر چاپ ماکرو بالا مثلا مقدار ۲۰۱۴۰۲L باشه شما در حال استفاده از ورژن ۱۴ کامپایلر سی پلاس هستید.

در صورتیکه از کامپایلر ++g استفاده میکنید و مثلا میخواهید کدتون تحت استاندارد ۱۱ کامپایل بشه باید مقدار متغیر std=c++11- رو به کامپایلر اضافه کنید. در غیر این صورت با ورژن دیفالت کامپایلر برنامتون کامپایل خواهد شد.

در نوشته های بعدی به مرور ویژگی هایی که سی پلاس پلاس مدرن ارائه کرده رو خواهیم دید. موفق باشید


نوشته‌های مرتبط

درباره نویسنده

برنامه‌نویس ++‏C/C‏ - برنامه‌نویس سیستم‌های گرافیکی با استفاده از کتابخانه ‏OpenGL - برنامه‌نویس #‏C و ..‏



فرستادن دیدگاه