کتاب Template Metaprogramming with C++ (قالب فرابرنامهنویسی با C++: همه چیز را در مورد قالبهای C++ بیاموزید و قدرت فرابرنامهنویسی قالب را باز کنید.) یک منبع تخصصی زبان برنامهنویسی سیپلاسپلاس با تمرکز بر روی قالب فرابرنامهنویسی یا Template Metaprogramming است. این کتاب در 9 فصل اصول اساسی و مهم قالب فرابرنامهنویسی را شرح خواهد داد.
در ادامه مقدمهای از کتاب Template Metaprogramming with C++ را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Template Metaprogramming with C++:
زبان برنامهنویسی C++ یکی از پرکاربردترین زبانهای دنیاست و چندین دهه است که همینطور بوده است. موفقیت آن فقط به دلیل عملکردی که ارائه میدهد یا شاید به راحتی استفاده از آن نیست، که بسیاری مخالف آن استدلال میکنند، بلکه احتمالاً به دلیل تطبیق پذیری آن است. C++ یک زبان برنامه نویسی همه منظوره و چند پارادایم است که برنامهنویسی رویهای، عملکردی و عمومی را با هم ترکیب میکند.
برنامهنویسی عمومی یک پارادایم از نوشتن کد است، مانند اینکه موجودیتهایی مانند توابع و کلاسها بر اساس انواعی که بعداً مشخص میشوند نوشته میشوند. این موجودیتهای عمومی تنها زمانی که برای انواع خاصی که بهعنوان آرگومان مشخص شدهاند مورد نیاز است، نمونهسازی میشوند. این موجودیتهای عمومی به عنوان الگو در C++ شناخته میشوند.
فرابرنامهنویسی تکنیک برنامهنویسی استفاده از الگوها (و توابع constexpr در C++) برای تولید کد در زمان کامپایل است که سپس با بقیه کد منبع برای کامپایل یک برنامه نهایی ادغام میشود. فرابرنامهنویسی به این معناست که حداقل یک ورودی یا یک خروجی یک نوع است.
همانطور که در C++ Core Guideless (سند بایدها و نبایدها که توسط Bjarne Stroustrup و Herb Sutter نگهداری میشود) الگوهای C++ شهرت بسیار وحشتناکی دارند. با این حال، آنها کتابخانههای عمومی مانند کتابخانه استاندارد C++ را که توسعهدهندگان C++ همیشه از آن استفاده میکنند، ممکن میسازند. چه خودتان الگوها را بنویسید یا فقط از الگوهایی استفاده کنید که توسط دیگران نوشته شدهاند (مانند ظروف استاندارد یا الگوریتمها)، قالبها به احتمال زیاد بخشی از کد روزانه شما هستند.
کتاب Template Metaprogramming with C++ در نظر گرفته شده است تا درک خوبی از تمام طیف قالبهای موجود در C++ (از نحو اولیه آنها تا مفاهیم در C++20) ارائه دهد. این موضوع محور دو بخش اول کتاب خواهد بود. بخش سوم و آخر به شما کمک میکند تا دانش تازه به دست آمده را برای انجام فرابرنامهنویسی با قالبها عملی کنید.
کتاب Template Metaprogramming with C++ برای چه کسانی است؟
این کتاب برای توسعهدهندگان C++ مبتدی تا متوسط است که میخواهند در مورد فرابرنامهنویسی قالب و همچنین توسعهدهندگان پیشرفته C++ که به دنبال سرعت بخشیدن به ویژگیهای جدید C++20 مربوط به قالبها و اصطلاحات و الگوهای مختلف هستند، بیاموزند. برای شروع کار با این کتاب، تجربه اولیه کدنویسی ++C ضروری است.
آنچه این کتاب پوشش میدهد:
فصل 1، مقدمهای بر قالبها، مقدمه ای بر مفهوم فرابرنامه نویسی قالب در C++ با چندین مثال ساده و بحث در مورد اینکه چرا به قالبها نیاز داریم و مزایا و معایب استفاده از قالبها چیست، ارائه میدهد.
فصل 2 کتاب Template Metaprogramming with C++، مبانی الگو، تمام اشکال قالبها را در C++ بررسی میکند: الگوهای تابع، قالبهای کلاس، قالبهای متغیر، و قالبهای مستعار. برای هر یک از اینها، نحو و جزئیات نحوه کار آنها را مورد بحث قرار میدهیم. علاوه بر این، مفاهیم کلیدی نمونهسازی و تخصصیسازی قالب در اینجا مورد بررسی قرار میگیرد.
فصل 3، قالبهای متغیر، به طور کامل به قالبهای متنوع اختصاص داده شده است که الگوهایی هستند که دارای تعداد متغیر پارامترهای قالب هستند. ما به تفصیل در مورد الگوهای تابع variadic، الگوهای کلاس variadic، قالبهای مستعار متغیر، و قالبهای متغیر، بستههای پارامتر و نحوه گسترش آنها و همچنین عباراتی که به ما کمک میکنند نوشتن قالبهای متنوع را ساده کنیم، بحث میکنیم.
فصل 4 کتاب Template Metaprogramming with C++، مفاهیم الگوی پیشرفته، مجموعه ای از مفاهیم الگوی پیشرفته مانند نامهای وابسته و جستجوی نام، کسر آرگومان الگو، بازگشت الگو، ارسال کامل، لامبداهای عمومی و الگو را گروهبندی میکند. با درک این موضوعات، خوانندگان قادر خواهند بود تا تنوع قالبهایی را که میتوانند بخوانند یا بنویسند، گسترش دهند.
فصل پنجم، صفات نوع و تألیف شرطی، به صفات نوع اختصاص دارد. خواننده در مورد ویژگیهای نوع، چه ویژگیهایی که کتابخانه استاندارد ارائه میدهد و چگونه میتوان از آنها برای حل مسائل مختلف استفاده کرد، یاد میگیرد.
فصل 6، مفاهیم و محدودیتها، مکانیسم جدید C++20 را برای تعریف الزامات آرگومانهای الگو با مفاهیم و محدودیتها ارائه میکند. با روشهای مختلف تعیین محدودیتها آشنا خواهید شد. علاوه بر این، ما یک نمای کلی از محتوای کتابخانه مفاهیم استاندارد C++20 ارائه میدهیم.
فصل 7، الگوها و اصطلاحات، مجموعه ای از موضوعات پیشرفته نامرتبط را در مورد استفاده از دانش آموخته شده تا کنون در پیادهسازی الگوهای مختلف بررسی میکند. ما مفاهیم چندشکلی ایستا، پاک کردن نوع، ارسال برچسب، و الگوهایی مانند الگوی الگوی بازگشتی کنجکاو، قالبهای بیان، میکسها و فهرستهای تایپ را بررسی میکنیم.
فصل 8 کتاب Template Metaprogramming with C++، محدودهها و الگوریتمها، به درک کانتینرها، تکرارکنندهها و الگوریتمها اختصاص دارد که اجزای اصلی کتابخانه الگوی استاندارد هستند. شما در اینجا یاد خواهید گرفت که چگونه یک کانتینر عمومی و یک نوع تکرارکننده برای آن و همچنین یک الگوریتم همه منظوره بنویسید.
فصل 9، کتابخانه محدودهها، کتابخانه جدید C++20 Ranges را با ویژگیهای کلیدی آن مانند محدودهها، آداپتورهای محدوده و الگوریتمهای محدود بررسی میکند. اینها ما را قادر میسازند تا کدهای سادهتری برای کار با محدوده بنویسیم. علاوه بر این، در اینجا یاد خواهید گرفت که چگونه آداپتور محدوده خود را بنویسید.
ضمیمه اپیلوگ کوتاهی است که خلاصه ای از کتاب را ارائه میدهد.
پاسخهای تکلیف شامل تمام پاسخهای سؤالات تمام فصلها است.
سرفصلهای کتاب Template Metaprogramming with C++:
- Contributors
- About the author
- About the reviewer
- Preface
- Part 1: Core Template Concepts
- Chapter 1: An Introduction to Templates
- Chapter 2: Template Fundamentals
- Chapter 3: Variadic Templates
- Part 2: Advanced Template Features
- Chapter 4: Advanced Template Concepts
- Chapter 5: Type Traits and Conditional Compilation
- Chapter 6: Concepts and Constraints
- Part 3: Applied Templates
- Chapter 7: Patterns and Idioms
- Chapter 8: Ranges and Algorithms
- Chapter 9: The Ranges Library
- Appendix
- Closing Notes
- Assignment Answers
- Other Books You May Enjoy
جهت دانلود کتاب Template Metaprogramming with C++ میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.