C++ Programming Masterclass: Code Faster. Build Smarter. Master C++
- Published by
- Packt
- Proceeds support
- The Global FoodBanking Network
The vital statistics
Opens Humble Bundle in a new tab. No affiliate links, no funny business.
The reading list
Check the titles before the bundle joins your backlog.
21 titles / covers and metadata where available / review links open externally
-
Building Low Latency Applications with C++
by Sourav Ghosh
Explore techniques to design and implement low latency applications and study the impact of latency reduction Purchase of the print or Kindle book includes a free PDF eBook Key Features Understand the impact application performance latencies have on different business use cases Develop a deep understanding of C++ features for low latency applications through real-world examples and performance data Learn how to build all the components of a C++ electronic trading system from scratch Book Description C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies. With this book, you'll gain insights into the performance requirements for low latency applications and the C++ features critical to achieving the required performance latencies. You'll also solidify your understanding of the C++ principles and techniques as you build a low latency system in C++ from scratch. You'll understand the similarities between such applications, recognize the impact of performance latencies on business, and grasp the reasons behind the extensive efforts invested in minimizing latencies. Using a step-by-step approach, you'll embark on a low latency app development journey by building an entire electronic trading system, encompassing a matching engine, market data handlers, order gateways, and trading algorithms, all in C++. Additionally, you'll get to grips with measuring and optimizing the performance of your trading system. By the end of this book, you'll have a comprehensive understanding of how to design and build low latency applications in C++ from the ground up, while effectively minimizing performance latencies. What you will learn Gain insights into the nature of low latency applications across various industries Understand how to design and implement low latency applications Explore C++ design paradigms and features for low latency development Discover which C++ features are best avoided in low latency development Implement best practices and C++ features for low latency Measure performance and improve latencies in the trading system Who this book is for This book is for C++ developers who want to gain expertise in low latency applications and effective design and development strategies. C++ software engineers looking to apply their knowledge to low latency trading systems such as HFT will find this book useful to understand which C++ features matter and which ones to avoid. Quantitative researchers in the trading industry eager to delve into the intricacies of low latency implementation will also benefit from this book. Familiarity with Linux and the C++ programming language is a prerequisite for this book.
- Publisher:
- Packt
- ISBN:
- 9781837634477
-
Debunking C++ Myths
by Alexandru Bolboacă; Ferenc-Lajos Deák
Explore the origins of C++ myths and their relevance today, learn to sidestep common pitfalls, and adopt modern best practices to master the evolving C++ programming landscape Key Features Trace the origins of C++ misconceptions and understand why they persist Learn to avoid pitfalls caused by misunderstood C++ standards Leverage the lesser-known features of the C++ programming language Purchase of the print or Kindle book includes a free PDF eBook Book Description Think you know C++? Think again.For decades, C++ has been clouded by myths and misunderstandings--from its early design decisions to misconceptions that still linger today. Claims like "C++ is too hard to learn" or "C++ is obsolete" are often rooted in some truth, but they are outdated and fail to capture the language's ongoing evolution and modern capabilities.Written by industry veterans with over 40 years of combined experience, this book uncovers the myths, exploring their origins and relevance in the context of today's C++ landscape. It equips you with a deeper understanding of advanced features and best practices to elevate your projects. Each chapter tackles a specific misconception, shedding light on C++'s modern features, such as smart pointers, lambdas, and concurrency. You'll learn practical strategies to navigate common challenges like code portability and compiler compatibility, as well as how to incorporate modern best practices into your C++ codebase to optimize performance and future-proof your projects. By the end of this book, you'll have a comprehensive understanding of C++'s evolution, equipping you to make informed decisions and harness its powerful features to enhance your skills, coding practices, and projects. What you will learn Comprehend the history of C++ and the design decisions that shape modern challenges Master program flow and its underlying principles to resolve issues effectively Tackle incompatibility across compilers and platforms with ease Identify issues and avoid writing code that may lead to undefined behavior Explore advanced C++ features not typically covered in academia Address concerns about compiler code generation and optimizations Understand why undefined behavior remains intentionally undefined Who this book is for This book is for intermediate-to-advanced C++ developers looking to deepen their understanding of the language's complexities. It is perfect for coders eager to avoid common mistakes, hackers, scholars with a sense of humor, or anyone with an interest in C++. Programmers who want to expand their knowledge, refine existing skills, explore new paradigms, or dive into the nuances of C++, will find valuable insights. Technical leads and software engineering managers adopting new technologies or navigating the C++ ecosystem will also benefit from this book.
- Publisher:
- Packt
- ISBN:
- 9781835884799
-
Software Architecture with C++
by Andrey Gavrilin; Adrian Ostrowski; Piotr Gaczkowski
Apply business requirements to IT infrastructure and deliver a high-quality product by understanding architectures such as microservices, DevOps, and cloud-native using modern C++ standards and features Key FeaturesDesign scalable large-scale applications with the C++ programming languageArchitect software solutions in a cloud-based environment with continuous integration and continuous delivery (CI/CD)Achieve architectural goals by leveraging design patterns, language features, and useful toolsBook Description Software architecture refers to the high-level design of complex applications. It is evolving just like the languages we use, but there are architectural concepts and patterns that you can learn to write high-performance apps in a high-level language without sacrificing readability and maintainability. If you're working with modern C++, this practical guide will help you put your knowledge to work and design distributed, large-scale apps. You'll start by getting up to speed with architectural concepts, including established patterns and rising trends, then move on to understanding what software architecture actually is and start exploring its components. Next, you'll discover the design concepts involved in application architecture and the patterns in software development, before going on to learn how to build, package, integrate, and deploy your components. In the concluding chapters, you'll explore different architectural qualities, such as maintainability, reusability, testability, performance, scalability, and security. Finally, you will get an overview of distributed systems, such as service-oriented architecture, microservices, and cloud-native, and understand how to apply them in application development. By the end of this book, you'll be able to build distributed services using modern C++ and associated tools to deliver solutions as per your clients' requirements. What you will learnUnderstand how to apply the principles of software architectureApply design patterns and best practices to meet your architectural goalsWrite elegant, safe, and performant code using the latest C++ featuresBuild applications that are easy to maintain and deployExplore the different architectural approaches and learn to apply them as per your requirementSimplify development and operations using application containersDiscover various techniques to solve common problems in software design and developmentWho this book is for This software architecture C++ programming book is for experienced C++ developers looking to become software architects or develop enterprise-grade applications.
- Publisher:
- Packt
- ISBN:
- 9781789612462
-
CMake Best Practices
by Dominik Berner; Mustafa Kemal Gilor
Discover practical tips and techniques for leveraging CMake to optimize your software development workflow Key Features Learn Master CMake, from basics to advanced techniques, for seamless project management Gain practical insights and best practices to tackle real-world CMake challenges Implement advanced strategies for optimizing and maintaining large-scale CMake projects Purchase of the print or Kindle book includes a free PDF eBook Book Description Discover the cutting-edge advancements in CMake with the new edition of CMake Best Practices. This book focuses on real-world applications and techniques to leverage CMake, avoiding outdated hacks and overwhelming documentation. You’ll learn how to use CMake presets for streamlined project configurations and embrace modern package management with Conan 2.0. Covering advanced methods to integrate third-party libraries and optimize cross-platform builds, this updated edition introduces new tools and techniques to enhance software quality, including testing frameworks, fuzzers, and automated documentation generation. Through hands-on examples, you’ll become proficient in structuring complex projects, ensuring that your builds run smoothly across different environments. Whether you’re integrating tools for continuous integration or packaging software for distribution, this book equips you with the skills needed to excel in modern software development. By the end of the book, you’ll have mastered setting up and maintaining robust software projects using CMake to streamline your development workflow and produce high-quality software. What you will learn Architect a well-structured CMake project Modularize and reuse CMake code across projects Use the latest CMake features for presets and dependency management Integrate tools for static analysis, linting, formatting, and documentation into a CMake project Execute hands-on cross-platform builds and seamless toolchain integration Implement automated fuzzing techniques to enhance code robustness Streamline your CI/CD pipelines with effective CMake configurations Craft a well-defined and portable build environment for your project Who this book is for This book is for software engineers and build system maintainers working with C or C++ who want to optimize their workflow using CMake. It's also valuable for those looking to enhance their understanding of structuring and managing CMake projects efficiently. Basic knowledge of C++ and general programming is recommended to fully grasp the examples and techniques covered in the book.
- Publisher:
- Packt
- ISBN:
- 9781835880654
-
Hands-On Design Patterns with C++
by Fedor G. Pikus
- Publisher:
- Packt
- ISBN:
- 9781788837958
-
Qt 6 C++ GUI Programming Cookbook
by Lee Zhi Eng
Use Qt 6 to design and build functional, appealing, and user-friendly graphical user interfaces (GUIs) for your applications Key Features Learn to use Qt 6 to design and customize the look and feel of your applications Improve the visual quality of an application by using graphics rendering and animation Understand the balance of presentation and web content that will make an application appealing yet functional Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionWith the growing need to develop GUIs for multiple targets and multiple screens, improving the visual quality of your application has become pivotal in helping it stand out from your competitors. With its cross-platform ability and the latest UI paradigms, Qt makes it possible to build intuitive, interactive, and user-friendly UIs for your applications. The third edition of Qt 6 C++ GUI Programming Cookbook teaches you how to develop functional and appealing UIs using the latest version of Qt 6 and C++. This book will help you learn a variety of topics such as GUI customization and animation, graphics rendering, and implementing Google Maps. You’ll also be taken through advanced concepts such as asynchronous programming, event handling using signals and slots, network programming, and other aspects to optimize your application. By the end of this Qt book, you’ll have the confidence you need to design and customize GUI applications that meet your clients' expectations and have an understanding of best-practice solutions to common problems during the app development process.What you will learn Animate GUI elements using Qt 6's built-in animation system Draw vector shapes and bitmap images using Qt 6's powerful rendering system Implement an industry-standard OpenGL library in your project Build a mobile app that supports touch events and export it into devices Parse and extract data from an XML file and present it on your GUI Interact with web content by calling JavaScript functions from C++ Access MySQL and SQLite databases to retrieve data and display it on your GUI Who this book is for This intermediate-level book is designed for those who want to develop software using Qt 6. If you want to improve the visual quality and content presentation of your software application, this book is for you. Prior experience with the C++ programming language is required.
- Publisher:
- Packt
- ISBN:
- 9781805120117
-
C++ Memory Management
by Patrice Roy; Michael Wong
Harness the power of C++ to build smaller, faster, safer, and more predictable programs using the latest techniques and best practices to optimize performance and ensure reliability in your software development projects Get With Your Book: PDF Copy, AI Assistant, and Next-Gen Reader Free Key Features Use contemporary C++ features to enhance code safety and reliability Develop a deeper understanding of memory management mechanisms in C++ Write programs that adapt to the constraints of your chosen architecture or platform Book DescriptionC++ programmers often face challenges in allocating and managing memory efficiently, especially given the diverse needs of real-time systems, embedded systems, games, and conventional desktop applications. This book offers a targeted approach to address the unique memory constraints of each domain. Written by an ISO C++ Standards Committee member, Patrice Roy, this guide covers fundamental concepts of object lifetime and memory organization to help you write simpler and safer programs. You’ll learn how to control memory allocation mechanisms, create custom containers and allocators, and adapt allocation operators to suit your specific requirements, making your programs smaller, faster, safer, and more predictable. Starting with core principles of memory management, this book introduces modern facilities that simplify your work and then dives into memory management mechanics, building solutions for specific application needs, and measuring their impact on your program’s behavior. By the end of this book, you’ll be able to write secure programs that handle memory optimally for your application domain. You will also have a strong grasp of both high-level abstractions for safer programs and low-level abstractions that allow detailed customization.What you will learn Master the C++ object model to write more efficient and maintainable code Automate resource management to reduce manual errors and improve safety Customize memory allocation operators to optimize performance for specific applications Develop your own smart pointers to manage dynamic memory with greater control Adapt allocation behavior to meet the unique needs of different data types Create safe and fast containers to ensure optimal data handling in your programs Utilize standard allocators to streamline memory management in your containers Who this book is for This book is for programmers who find C++ memory management challenging yet want to master it. It’s ideal for those seeking greater control over memory allocation to make their programs smaller, faster, and safer. Whether you're a seasoned C++ developer or transitioning from other languages, you'll gain insights into how C++ can enhance your programming. It’s especially valuable if you’re working in constrained environments, like embedded systems or game development. Prior experience with programming concepts, such as generic and concurrent programming, is helpful.
- Publisher:
- Packt
- ISBN:
- 9781805128243
-
LLVM Code Generation
by Quentin Colombet; Kristof Beyls
Explore the world of code generation with the LLVM infrastructure, and learn how to extend existing backends or develop your own Get With Your Book: PDF Copy, AI Assistant, and Next-Gen Reader Free Key Features Understand the steps involved in generating assembly code from LLVM IR Learn the key constructs needed to leverage LLVM for your hardware or backend Strengthen your understanding with targeted exercises and practical examples in every chapter Book DescriptionThe LLVM infrastructure is a popular compiler ecosystem widely used in the tech industry and academia. This technology is crucial for both experienced and aspiring compiler developers looking to make an impact in the field. Written by Quentin Colombet, a veteran LLVM contributor and architect of the GlobalISel framework, this book provides a primer on the main aspects of LLVM, with an emphasis on its backend infrastructure; that is, everything needed to transform the intermediate representation (IR) produced by frontends like Clang into assembly code and object files. You’ll learn how to write an optimizing code generator for a toy backend in LLVM. The chapters will guide you step by step through building this backend while exploring key concepts, such as the ABI, cost model, and register allocation. You’ll also find out how to express these concepts using LLVM's existing infrastructure and how established backends address these challenges. Furthermore, the book features code snippets that demonstrate the actual APIs. By the end of this book, you’ll have gained a deeper understanding of LLVM. The concepts presented are expected to remain stable across different LLVM versions, making this book a reliable quick reference guide for understanding LLVM.What you will learn Understand essential compiler concepts, such as SSA, dominance, and ABI Build and extend LLVM backends for creating custom compiler features Optimize code by manipulating LLVM's Intermediate Representation Contribute effectively to LLVM open-source projects and development Develop debugging skills for LLVM optimizations and passes Grasp how encoding and (dis)assembling work in the context of compilers Utilize LLVM's TableGen DSL for creating custom compiler models Who this book is for This book is for both beginners to LLVM and experienced LLVM developers. If you’re new to LLVM, it offers a clear, approachable guide to compiler backends, starting with foundational concepts. For seasoned LLVM developers, it dives into less-documented areas such as TableGen, MachineIR, and MC, enabling you to solve complex problems and expand your expertise. Whether you’re starting out or looking to deepen your knowledge, this book has something for you.
- Publisher:
- Packt
- ISBN:
- 9781835462577
-
C++ STL Cookbook
by Bill Weinman
This edition of C++ STL Cookbook features new recipes, updated best practices, and comprehensive coverage of the latest C++23, C++26 features. Perfect for intermediate to advanced developers looking to leverage modern C++ features and techniques. Key Features Elevate your code with the latest C++23 strategies and techniques to solve complex programming challenges effectively Learn about new features of C++26, and how to implement them. Explore the proposed standardized library and how it integrates with existing C++ applications Dive into the latest C++23 innovations such as enhanced ranges and advanced concurrency features with new and updated recipes Book DescriptionC++ STL Cookbook is a comprehensive guide that provides practical solutions for mastering the latest features of the C++23 Standard Template Library (STL) through hands-on recipes. Beginning with new features in C++23, this book will help you understand the language's updated mechanics and library features, and offer insights into how they work. Unlike other books, this cookbook takes an implementation-specific, problem-solution approach that will help you overcome hurdles quickly. You'll learn core STL concepts, such as containers, algorithms, utility classes, lambda expressions, iterators, and more, through specific real-world recipes. Building on the success of the first edition, this updated guide includes a new chapter dedicated to the latest features introduced in C++23, such as improved modules, refined ranges, and coroutine-based generators. It also covers essential best practices for writing cleaner and more efficient code, including the use of coroutines, structured bindings, and std::span. Whether you're looking to deepen your understanding of the C++ STL or implement the latest features in your projects, this book provides valuable insights, clear and concise explanations and practical solutions to enhance your C++ programming skills.What you will learn Write cleaner and more efficient code using modern C++ techniques Implement and master the latest features introduced in C++23 Use the new standard library modules in C++23 Learn about new features of C++26, and how to implement them Expand your use of ranges with new components and functionalities Implement coroutines for more efficient concurrency Employ braced initialization for safer and clearer object creation Leverage std::span for enhanced safety with C-arrays Who this book is for This book is for intermediate to advanced C++ programmers who want to get the most out of the Standard Template Library in C++23 and C++26, the latest versions of C++. Basic knowledge of coding and C++ concepts is necessary to get started with this book.
- Publisher:
- Packt
- ISBN:
- 9781836204244
-
Learn LLVM 17
by Kai Nacke; Amy Kwan
Learn how to build and use the complete spectrum of real-world compilers, including the frontend, optimization pipeline, and a new backend by leveraging the power of LLVM core libraries Key Features Get to grips with using LLVM libraries step by step Understand the high-level design of LLVM compilers and apply these principles to your own compiler Add a new backend to target an unsupported CPU architecture Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionLLVM was built to bridge the gap between the theoretical knowledge found in compiler textbooks and the practical demands of compiler development. With a modular codebase and advanced tools, LLVM empowers developers to build compilers with ease. This book serves as a practical introduction to LLVM, guiding you progressively through complex scenarios and ensuring that you navigate the challenges of building and working with compilers like a pro. The book starts by showing you how to configure, build, and install LLVM libraries, tools, and external projects. You’ll then be introduced to LLVM's design, unraveling its applications in each compiler stage: frontend, optimizer, and backend. Using a real programming language subset, you'll build a frontend, generate LLVM IR, optimize it through the pipeline, and generate machine code. Advanced chapters extend your expertise, covering topics such as extending LLVM with a new pass, using LLVM tools for debugging, and enhancing the quality of your code. You'll also focus on just-in-time compilation issues and the current state of JIT-compilation support with LLVM. Finally, you’ll develop a new backend for LLVM, gaining insights into target description and how instruction selection works. By the end of this book, you'll have hands-on experience with the LLVM compiler development framework through real-world examples and source code snippets.What you will learn Configure, compile, and install the LLVM framework Understand how the LLVM source is organized Discover what you need to do to use LLVM in your own projects Explore how a compiler is structured, and implement a tiny compiler Generate LLVM IR for common source language constructs Set up an optimization pipeline and tailor it for your own needs Extend LLVM with transformation passes and clang tooling Add new machine instructions and a complete backend Who this book is for This book is for compiler developers, enthusiasts, and engineers new to LLVM. C++ software engineers looking to use compiler-based tools for code analysis and improvement, as well as casual users of LLVM libraries who want to gain more knowledge of LLVM essentials will also find this book useful. Intermediate-level experience with C++ programming is necessary to understand the concepts covered in this book.
- Publisher:
- Packt
- ISBN:
- 9781837634675
-
Bare-Metal Embedded C Programming
by Israel Gbati; Georgios Papanikolaou
Become proficient in designing and developing embedded systems and reduce reliance on third-party libraries Get With Your Book: PDF Copy, AI Assistant, and Next-Gen Reader Free Key Features Learn to develop bare-metal firmware for Arm microcontrollers from scratch Understand hardware intricacies to minimize your dependency on third-party libraries Navigate microcontroller manuals with ease and learn to write optimized code Book DescriptionBare-Metal Embedded C Programming takes you on an unparalleled journey to equip you with the skills and knowledge to excel in the world of embedded systems. The author, with over a decade of hands-on experience in engineering, takes a unique, practical approach to teach you how to decode microcontroller datasheets so that you’re able to extract vital information for precise firmware development. Register manipulation will become second nature to you as you learn to craft optimized code from scratch. The book provides in-depth insights into the hardware intricacies of microcontrollers. You'll navigate user manuals and documentation with ease, ensuring a profound understanding of the underlying technology. The true uniqueness of this book lies in its commitment to fostering independent expertise. Instead of simply copy pasting, you'll develop the capability to create firmware with confidence, paving the way for professional-grade mastery. By the end of this book, you'll have honed your skills in reading datasheets, performing register manipulations, and crafting optimized code, as well as gained the confidence needed to navigate hardware intricacies and write optimized firmware independently, making you a proficient and self-reliant embedded systems developer.What you will learn Decode microcontroller datasheets, enabling precise firmware development Master register manipulations for optimized Arm-based microcontroller firmware creation Discover how to navigate hardware intricacies confidently Find out how to write optimized firmware without any assistance Work on exercises to create bare-metal drivers for GPIO, timers, ADC, UART, SPI, I2C, DMA, and more Design energy-efficient embedded systems with power management techniques Who this book is for Whether you're an experienced engineer seeking in-depth expertise in decoding datasheets, precise register manipulations, and creating firmware from scratch, or a software developer transitioning to the embedded systems domain, this book is your comprehensive guide. It equips you with the practical skills needed for confident, independent firmware development, making it an essential resource for professionals and enthusiasts in the field.
- Publisher:
- Packt
- ISBN:
- 9781835463567
-
Data Structures and Algorithms with the C++ STL
by John Farrier
Explore the C++ 23 STL with practical guidance on vectors, algorithms, and custom types for intermediate developers, enriched by real-world examples. Key Features Master the std::vector and understand why it should be your default container of choice Understand each STL algorithm and its practical applications Gain insights into advanced topics such as exception guarantees and thread safety Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionWhile the Standard Template Library (STL) offers a rich set of tools for data structures and algorithms, navigating its intricacies can be daunting for intermediate C++ developers without expert guidance. This book offers a thorough exploration of the STL’s components, covering fundamental data structures, advanced algorithms, and concurrency features. Starting with an in-depth analysis of the std::vector, this book highlights its pivotal role in the STL, progressing toward building your proficiency in utilizing vectors, managing memory, and leveraging iterators. The book then advances to STL’s data structures, including sequence containers, associative containers, and unordered containers, simplifying the concepts of container adaptors and views to enhance your knowledge of modern STL programming. Shifting the focus to STL algorithms, you’ll get to grips with sorting, searching, and transformations and develop the skills to implement and modify algorithms with best practices. Advanced sections cover extending the STL with custom types and algorithms, as well as concurrency features, exception safety, and parallel algorithms. By the end of this book, you’ll have transformed into a proficient STL practitioner ready to tackle real-world challenges and build efficient and scalable C++ applications.What you will learn Streamline data handling using the std::vector Master advanced usage of STL iterators Optimize memory in STL containers Implement custom STL allocators Apply sorting and searching with STL algorithms Craft STL-compatible custom types Manage concurrency and ensure thread safety in STL Harness the power of parallel algorithms in STL Who this book is for This book is for intermediate-level C++ developers looking to enhance their software development skills. Familiarity with basic C++ syntax and object-oriented programming (OOP) as well as some exposure to data structures and algorithms is assumed. Tailored to software engineers, computer science students, and hobbyist programmers, this book delves into C++ STL for practical application, performance enhancement, and efficient coding practices.
- Publisher:
- Packt
- ISBN:
- 9781835469071
-
Rust for C++ Developers
by Dan Olson
Transition from C++ to Rust with ease by learning how to write safe, modern systems code using familiar examples Key Features Compare Rust and C++ side by side to accelerate your Rust learning curve Understand Rust’s memory safety, concurrency, and project structure in practical terms Build and convert real-world programs while adopting modern Rust idioms Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionIf you're a C++ programmer curious about the rising popularity of Rust, this book will guide you through the transition with clarity and purpose. Written by a veteran C++ developer who embraced Rust to improve software quality and maintainability, this hands-on guide shows you how to apply your existing knowledge to build efficient and safe systems with Rust. The first half of the book deep dives into Rust’s history, safety guarantees, and development tooling. From there, the book compares Rust and C++ side by side, covering syntax, SIMD instructions, file I/O, object orientation, and data structures. With each chapter, you’ll gain a practical understanding of Rust’s unique approaches—like ownership and borrowing—and how they solve long-standing challenges in C++. Later half of the book tackles performance optimization, multithreading, macros, and foreign function interfaces, culminating in a complete project where you reimplement a C++ program in Rust. By focusing on real-world code and familiar concepts, this book makes Rust accessible and actionable for experienced C++ developers. By the end of Rust for C++ Developers, you’ll be confident in your ability to read, write, and maintain production-grade Rust code, and you’ll have a clear roadmap for integrating Rust into your future projects.What you will learn Set up a Rust development environment with VS Code and Clippy Understand Rust's syntax, memory model, and ownership rules Translate C++ patterns into idiomatic Rust code Manage Rust projects with Cargo and use community crates Interface Rust with C and C++ using FFI and bindgen Write concurrent and parallel code using safe Rust abstractions Optimize performance through profiling and custom SIMD instructions Build, test, and extend a real project from C++ to Rust Who this book is for Professional C++ developers are the primary audience for this book—especially those looking to improve software safety, maintainability, and concurrency handling in their systems code. It’s also ideal for systems programmers and engineers in fields like game development, embedded systems, and high-performance computing who are curious about Rust. Readers should be comfortable with C++ concepts such as pointers, memory allocation, and STL(Standard Template Library) containers. Familiarity with topics like concurrency, atomics, and debugging is beneficial but not required.
- Publisher:
- Packt
- ISBN:
- 9781836206507
-
C++ and Algorithmic Thinking for the Complete Beginner
by Aristides Bouras
Dive into the essentials of C++ and algorithmic thinking with this book. This comprehensive guide is perfect for newcomers looking to build a strong foundation in programming and problem-solving. Key Features Comprehensive introduction to C++ programming and detailed explanations of algorithmic concepts. Step-by-step setup of development environments, with practical exercises and real-world examples. In-depth coverage of control structures, and visual aids such as trace tables and flowcharts. Book DescriptionEmbark on your programming journey with a thorough introduction to how computers work, setting the stage for understanding C++ and its applications. This course begins with the basics, including setting up your development environment and installing necessary software packages. As you progress, you'll delve into fundamental algorithmic concepts, variables, constants, and handling input and output efficiently. As you build your knowledge, the course introduces more complex topics such as sequence control structures, decision-making processes, and loop control structures. You will learn to manipulate numbers, strings, and understand the intricacies of operators through practical exercises and real-world examples. Visual aids like trace tables and flowcharts will help you visualize the flow of your programs and improve your debugging skills. Towards the end of the course, you'll explore advanced topics such as arrays, data structures, subprograms, and an introduction to object-oriented programming. By the conclusion, you will also gain insights into file handling and advanced algorithmic strategies. Each chapter is designed to build on the previous one, ensuring a cohesive and comprehensive learning experience that equips you with the skills needed to excel in C++ programming and algorithmic thinking.What you will learn Understand how computers and programming languages work. Master the basics of C++ and integrated development environments. Develop and debug algorithms effectively. Manipulate variables, constants, and data structures. Implement control structures to manage program flow. Create and use subprograms to optimize code. Who this book is for This course is designed for complete beginners with no prior programming experience, making it ideal for a wide range of learners. High school students, college students, and self-taught programmers will find this course particularly useful. It’s also suitable for professionals looking to transition into a programming role or enhance their technical skill set. Educators seeking a structured curriculum for teaching C++ can benefit from the course material. Basic computer literacy is recommended, but no prior knowledge of programming is required.
- Publisher:
- Packt
- ISBN:
- 9781836208181
-
GPU Programming with C++ and CUDA
by Paulo Motta
Learn to solve parallel problems with GPU-accelerated C++ code and create reusable libraries that can be accessed from other programming languages Key Features Harness the power of GPU parallelism to accelerate real-world tasks Utilize CUDA streams and scale performance with custom C++ solutions Create reusable GPU libraries and expose them to Python seamlessly Book DescriptionWritten by Paulo Motta, a senior researcher with decades of experience, this comprehensive GPU programming book is an essential guide for leveraging the power of parallelism to accelerate your computations. The first section introduces the concept of parallelism and provides practical advice on how to think about and utilize it effectively. Starting with a basic GPU program, you then gain hands-on experience in managing the device. This foundational knowledge is then expanded by parallelizing the program to illustrate how GPUs enhance performance. The second section explores GPU architecture and implementation strategies for parallel algorithms, and offers practical insights into optimizing resource usage for efficient execution. In the final section, you will explore advanced topics such as utilizing CUDA streams. You will also learn how to package and distribute GPU-accelerated libraries for the Python ecosystem, extending the reach and impact of your work. Combining expert insight with real-world problem solving, this book is a valuable resource for developers and researchers aiming to harness the full potential of GPU computing. The blend of theoretical foundations, practical programming techniques, and advanced optimization strategies it offers is sure to help you succeed in the fast-evolving field of GPU programming.What you will learn Manage GPU devices and accelerate your applications Apply parallelism effectively using CUDA and C++ Choose between existing libraries and custom GPU solutions Package GPU code into libraries for use with Python Explore advanced topics such as CUDA streams Implement optimization strategies for resource-efficient execution Who this book is for C++ developers and programmers interested in accelerating applications using GPU programming will benefit from this book. It is suitable for those with solid C++ experience who want to explore high-performance computing techniques. Familiarity with operating system fundamentals will help when dealing with device memory and communication in advanced chapters.
- Publisher:
- Packt
- ISBN:
- 9781805128823
-
Template Metaprogramming with C++
by Marius Bancila
Understand how to use modern C++ templates for writing maintainable, robust, and fast software Key Features Grasp the fundamentals of and learn to write effective C++ templates Get up to speed with the latest C++20 template features such as constraints and concepts Explore different patterns and idioms to integrate templates in your program design Book DescriptionLearn how the metaprogramming technique enables you to create data structures and functions that allow computation to happen at compile time. With this book, you'll realize how templates help you avoid writing duplicate code and are key to creating generic libraries, such as the standard library or Boost, that can be used in a multitude of programs. The introductory chapters of this book will give you insights into the fundamentals of templates and metaprogramming. You'll then move on to practice writing complex templates and exploring advanced concepts such as template recursion, template argument deduction, forwarding references, type traits, and conditional compilation. Along the way, you'll learn how to write variadic templates and how to provide requirements to the template arguments with C++20 constraints and concepts. Finally, you'll apply your knowledge of C++ metaprogramming templates to implement various metaprogramming patterns and techniques. By the end of this book, you'll have learned how to write effective templates and implement metaprogramming in your everyday programming journey.What you will learn Understand the syntax for all types of templates Discover how specialization and instantiation works Get to grips with template argument deduction and forwarding references Write variadic templates with ease Become familiar with type traits and conditional compilation Restrict template arguments in C++20 with constraints and concepts Implement patterns such as CRTP, mixins, and tag dispatching Who this book is for This book is for beginner-to-intermediate C++ developers who want to learn about template metaprogramming as well as advanced C++ developers looking to get up to speed with the new C++20 features related to templates and the the various idioms and patterns. Basic C++ coding experience is necessary to get started with this book.
- Publisher:
- Packt
- ISBN:
- 9781803230535
-
Modern C++ Programming Cookbook
by Marius Bancila
A pragmatic recipe book for acquiring a comprehensive understanding of the complexities and core fundamentals of C++ programming Key Features Explore the latest language and library features of C++20 such as modules, coroutines, concepts, and ranges Shed new light on the core concepts in C++ programming, including functions, algorithms, threading, and concurrency, through practical self-contained recipes Leverage C++ features like smart pointers, move semantics, constexpr, and more for increased robustness and performance Book DescriptionC++ has come a long way to be one of the most widely used general-purpose languages that is fast, efficient, and high-performance at its core. The updated second edition of Modern C++ Programming Cookbook addresses the latest features of C++20, such as modules, concepts, coroutines, and the many additions to the standard library, including ranges and text formatting. The book is organized in the form of practical recipes covering a wide range of problems faced by modern developers. The book also delves into the details of all the core concepts in modern C++ programming, such as functions and classes, iterators and algorithms, streams and the file system, threading and concurrency, smart pointers and move semantics, and many others. It goes into the performance aspects of programming in depth, teaching developers how to write fast and lean code with the help of best practices. Furthermore, the book explores useful patterns and delves into the implementation of many idioms, including pimpl, named parameter, and attorney-client, teaching techniques such as avoiding repetition with the factory pattern. There is also a chapter dedicated to unit testing, where you are introduced to three of the most widely used libraries for C++: Boost.Test, Google Test, and Catch2. By the end of the book, you will be able to effectively leverage the features and techniques of C++11/14/17/20 programming to enhance the performance, scalability, and efficiency of your applications.What you will learn Understand the new C++20 language and library features and the problems they solve Become skilled at using the standard support for threading and concurrency for daily tasks Leverage the standard library and work with containers, algorithms, and iterators Solve text searching and replacement problems using regular expressions Work with different types of strings and learn the various aspects of compilation Take advantage of the file system library to work with files and directories Implement various useful patterns and idioms Explore the widely used testing frameworks for C++ Who this book is for The book is designed for entry- or medium-level C++ programmers who have a basic knowledge of C++ and want to master the language and become prolific modern C++ developers. Experienced C++ programmers can leverage this book to strengthen their command of C++ and find a good reference to many language and library features of C++11/14/17/20.
- Publisher:
- Packt
- ISBN:
- 9781800206205
-
Modern CMake for C++
by Rafał Świdziński; Alexander Kushnir
Write comprehensive, professional-standard CMake projects and ensure the quality and simplicity of your solutions Purchase of the print or Kindle book includes a free eBook in the PDF format Key Features Understand and automate compilation and linking with CMake Manage internal and external dependencies easily Add quality checks and tests as an inherent step for your builds Book DescriptionCreating top-notch software is an extremely difficult undertaking. Developers researching the subject have difficulty determining which advice is up to date and which approaches have already been replaced by easier, better practices. At the same time, most online resources offer limited explanation, while also lacking the proper context and structure. This book offers a simpler, more comprehensive, experience as it treats the subject of building C++ solutions holistically. Modern CMake for C++ is an end-to-end guide to the automatization of complex tasks, including building, testing, and packaging. You'll not only learn how to use the CMake language in CMake projects, but also discover what makes them maintainable, elegant, and clean. The book also focuses on the structure of source directories, building targets, and packages. As you progress, you’ll learn how to compile and link executables and libraries, how those processes work, and how to optimize builds in CMake for the best results. You'll understand how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll get to grips with exporting, installing, and packaging for internal and external purposes. By the end of this book, you’ll be able to use CMake confidently on a professional level.What you will learn Understand best practices for building C++ code Gain practical knowledge of the CMake language by focusing on the most useful aspects Use cutting-edge tooling to guarantee code quality with the help of tests and static and dynamic analysis Discover how to manage, discover, download, and link dependencies with CMake Build solutions that can be reused and maintained in the long term Understand how to optimize build artifacts and the build process itself Who this book is for The book is for build engineers and software developers with knowledge of C/C++ programming who are looking to learn CMake to automate the process of building small and large software solutions. If you are someone who's just getting started with CMake, a long-time GNU Make user, or simply looking to brush up on the latest best practices, this book is for you.
- Publisher:
- Packt
- ISBN:
- 9781801071659
-
Asynchronous Programming with C++
by Javier Reguera-Salgado; Juan Antonio Rufes
Unlock the full potential of modern C++ and build high-performance, responsive, and scalable applications with Asynchronous Programming with C++: Building Responsive and Scalable Systems with Modern Concurrency Tools. This comprehensive guide dives deep into the evolving landscape of C++ concurrency and asynchronous design, equipping developers with the knowledge and tools needed to master real-world software challenges. From threading fundamentals and the C++ memory model to advanced features like coroutines, futures, promises, and task-based design, this book walks you through everything you need to create non-blocking, event-driven, and highly concurrent systems. You'll explore essential libraries like std:: thread, std:: async, and std:: atomic, as well as powerful frameworks such as Boost.Asio, RxCpp, and Folly Futures. Designed for professional developers, system architects, and performance-minded engineers, this book balances practical examples with deep technical insights. Whether you're building desktop applications, servers, or real-time systems, you'll learn how to identify performance bottlenecks, implement scalable thread pools, manage async I/O, and architect reactive systems with confidence. Key Topics Include: Modern C++11-C++23 concurrency features Threads, mutexes, and atomic operations Futures, promises, and std:: async C++20 coroutines and custom awaitables Event loops, message queues, and state machines Asynchronous I/O and non-blocking sockets Task scheduling, thread pools, and work stealing Reactive programming and stream processing Designing robust, fault-tolerant, and scalable systems Whether you're upgrading legacy systems or architecting new software from the ground up, Asynchronous Programming with C++ is your definitive guide to writing fast, responsive, and maintainable concurrent applications
- Publisher:
- Packt
- ISBN:
- 9798284033104
-
The C++ Programmer's Mindset
by Sam Morley
Learn to break down and solve real-world problems with modern C++ using the proven power of computational thinking. Key Features Apply computational thinking to tackle complex C++ challenges Use abstraction, algorithms, and data structures the C++ way Build scalable, efficient, and reusable C++ code through real-world projects Purchase of the print or Kindle book includes a free PDF eBook Book Description Solve complex problems in C++ by learning how to think like a computer scientist. This book introduces computational thinking—a framework for solving problems using decomposition, abstraction, and pattern recognition—and shows you how to apply it using modern C++ features. You'll learn how to break down challenges, choose the right abstractions, and build solutions that are both maintainable and efficient. Through small examples and a large case study, this book guides you from foundational concepts to high-performance applications. You’ll explore reusable templates, algorithms, modularity, and even parallel computing and GPU acceleration. With each chapter, you’ll not only expand your C++ skillset, but also refine the way you approach and solve real-world problems. Written by a seasoned research engineer and C++ developer, this book combines practical insight with academic rigor. Whether you're designing algorithms or profiling production code, this book helps you deliver elegant, effective solutions with confidence. What you will learn Apply computational thinking to complex C++ problems Break problems into components using abstraction Use algorithms and data structures effectively in C++ Design modular and reusable C++ code Analyze and improve algorithmic performance Parse, transform, and interpret data in multiple formats Scale up with concurrency, GPUs, and profiling tools Who this book is for C++ developers, software engineers, and computer science students who want to enhance their problem-solving capabilities and build scalable, maintainable solutions. Basic familiarity with C++ syntax is assumed, making this ideal for intermediate programmers ready to master abstraction and algorithmic thinking.
- Publisher:
- Packt
- ISBN:
- 9781835888438
-
Refactoring with C++
by Dmitry Danilov
Improve readability and understandability of code using C++ best practices Key Features Enrich your coding skills using features from the modern C++ standard and industry approved libraries Implement refactoring techniques and SOLID principles in C++ Apply automated tools to improve your code quality Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionDespite the prevalence of higher-level languages, C++ is still running the world, from bare-metal embedded systems to distributed cloud-native systems. C++ is on the frontline whenever there is a need for a performance-sensitive tool supporting complex data structures. The language has been actively evolving for the last two decades. This book is a comprehensive guide that shows you how to implement SOLID principles and refactor legacy code using the modern features and approaches of C++, the standard library, Boost library collection, and Guidelines Support Library by Microsoft. The book begins by describing the essential elements of writing clean code and discussing object-oriented programming in C++. You’ll explore the design principles of software testing with examples of using popular unit testing frameworks such as Google Test. The book also guides you through applying automated tools for static and dynamic code analysis using Clang Tools. By the end of this book, you’ll be proficient in applying industry-approved coding practices to design clean, sustainable, and readable real-world C++ code.What you will learn Leverage the rich type system of C++ to write safe and elegant code Create advanced object-oriented designs using the unique features of C++ Minimize code duplication by using metaprogramming Refactor code safely with the help of unit tests Ensure code conventions and format with clang-format Facilitate the usage of modern features automatically with clang-tidy Catch complex bugs such as memory leakage and data races with Clang AddressSanitizer and ThreadSanitizer Who this book is for This book will benefit experienced C++ programmers the most, but is also suitable for technical leaders, software architects, and senior software engineers who want to save on costs and improve software development process efficiency by using modern C++ features and automated tools.
- Publisher:
- Packt
- ISBN:
- 9781837639410