The C++ Programming Language


Book Description

The most widely read and trusted guide to the C++ language, standard library, and design techniques includes significant new updates and two new appendices on internationalization and Standard Library technicalities. It is the only book with authoritative, accessible coverage of every major element of ISO/ANSI Standard C++.







The Design and Evolution of C++


Book Description

The inventor of C++ presents the definitive insider's guide to the design and development of the C++ programming language. Without ommitting critical details or getting bogged down in technicalities, Stroustrup presents his unique insights into the decisions that shaped C++. Every C++ programmer will benefit from Stroustrup's explanations of the 'why's' behind C++ from the earliest features, such as the original class concept, to the latest extensions, such as new casts and explicit template instantiation. Some C++ design decisions have been universally praised, while others remain controversial, and debated vigorously; still other features have been rejected based on experimentation. In this book, Stroustrup dissects many of these decisions to present a case study in "real object- oriented language development" for the working programmer. In doing so, he presents his views on programming and design in a concrete and useful way that makes this book a must-buy for every C++ programmer. Features Written by the inventor of C++: Bjarne Stroustrup Provides insights into the design decisions which shaped C++. Gives technical summaries of C++. Presents Stroustrup's unique programming and design views




Mastering the C++17 STL


Book Description

This book breaks down the C++ STL, teaching you how to extract its gems and apply them to your programming. About This Book Boost your productivity as a C++ developer with the latest features of C++17 Develop high-quality, fast, and portable applications with the varied features of the STL Migrate from older versions (C++11, C++14) to C++17 Who This Book Is For This book is for developers who would like to master the C++ STL and make full use of its components. Prior C++ knowledge is assumed. What You Will Learn Make your own iterator types, allocators, and thread pools. Master every standard container and every standard algorithm. Improve your code by replacing new/delete with smart pointers. Understand the difference between monomorphic algorithms, polymorphic algorithms, and generic algorithms. Learn the meaning and applications of vocabulary type, product type and sum type. In Detail Modern C++ has come a long way since 2011. The latest update, C++17, has just been ratified and several implementations are on the way. This book is your guide to the C++ standard library, including the very latest C++17 features. The book starts by exploring the C++ Standard Template Library in depth. You will learn the key differences between classical polymorphism and generic programming, the foundation of the STL. You will also learn how to use the various algorithms and containers in the STL to suit your programming needs. The next module delves into the tools of modern C++. Here you will learn about algebraic types such as std::optional, vocabulary types such as std::function, smart pointers, and synchronization primitives such as std::atomic and std::mutex. In the final module, you will learn about C++'s support for regular expressions and file I/O. By the end of the book you will be proficient in using the C++17 standard library to implement real programs, and you'll have gained a solid understanding of the library's own internals. Style and approach This book takes a concise but comprehensive approach to explaining and applying the C++ STL, one feature at a time.




The National's Boxer


Book Description

“Pinkard's account... brings to light the ambition and artistry, the stress and frustration, and ultimately the joy of making this very special album."-Peter Katis, The National's engineer, and mixer on Boxer “I am spooked by how well [Pinkard] has captured these characters and this madcap project. I am not sure how he did it.” -Carin Besser, co-lyricist on Boxer and wife to Matt Berninger “Accessible, perceptive, sometimes hilarious, but more often harrowing, Pinkard's book gets a running start on its subject, tracing The National's trajectory from their first notes together to the creation of Boxer.” -Stephen M. Deusner, music critic and author We all know the Boxer. The fighter who remembers every glove but still remains. That grisly, bruised American allegory who somehow gets up more times than he's knocked down. This is the fight that nearly broke The National. The one that allowed them to become champions. Released in 2007, The National's fourth full-length album is the one that saved them. For fans, Boxer is a profound personal meditation on the unmagnificent lives of adults, an elegant culmination of their sophisticated songwriting, and the first National album many fell in love with. For the band, Boxer symbolizes an obsession, a years-long struggle, a love story, a final give-it-everything-you've-got effort to keep their fantasy of being a real rock band alive. Based on extensive original interviews with the fighters who were in the ring and the spectators who witnessed it unfold, Ryan Pinkard obsessively reconstructs a transformative chapter in The National's story, revealing how the Ohio-via-Brooklyn five-piece found the sound, success, and spiritual growth to evolve into one of the most critically acclaimed bands of their time.




The Virgin Warrior


Book Description

“A fresh and provocative biography of La Pucelle . . . her transformation from a naive girl to a strong-willed, bold, and gifted captain of war.”—Frederic J. Baumgartner, author of France in the Sixteenth Century France’s great heroine and England’s great scourge: whether a lunatic, a witch, a religious icon, or a skilled soldier and leader, Joan of Arc’s contemporaries found her as extraordinary and fascinating as the legends that abound about her today. But her life has been so endlessly cast and recast that we have lost sight of the remarkable girl at the heart of it—a teenaged peasant girl who, after claiming to hear voices, convinced the French king to let her lead a disheartened army into battle. In the process she changed the course of European history. In The Virgin Warrior, Larissa Juliet Taylor paints a vivid portrait of Joan as a self-confident, charismatic and supremely determined figure, whose sheer force of will electrified those around her and struck terror into the hearts of the English soldiers and leaders. The drama of Joan’s life is set against a world where visions and witchcraft were real, where saints could appear to peasants, battles and sieges decided the fate of kingdoms and rigged trials could result in burning at the stake. Yet in her short life, Joan emboldened the French soldiers and villagers with her strength and resolve. A difficult, inflexible leader, she defied her accusers and enemies to the end. From her early years to the myths and fantasies that have swelled since her death, Taylor “goes deep into Joan of Arc’s heart and soul and shows us the maiden, the warrior and the heroine” (Kate Williams, New York Times bestselling author)./




The C++ Programming Language


Book Description

The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively. The C++ Programming Language, Fourth Edition, delivers meticulous, richly explained, and integrated coverage of the entire language—its facilities, abstraction mechanisms, standard libraries, and key design techniques. Throughout, Stroustrup presents concise, “pure C++11” examples, which have been carefully crafted to clarify both usage and program design. To promote deeper understanding, the author provides extensive cross-references, both within the book and to the ISO standard. New C++11 coverage includes Support for concurrency Regular expressions, resource management pointers, random numbers, and improved containers General and uniform initialization, simplified for-statements, move semantics, and Unicode support Lambdas, general constant expressions, control over class defaults, variadic templates, template aliases, and user-defined literals Compatibility issues Topics addressed in this comprehensive book include Basic facilities: type, object, scope, storage, computation fundamentals, and more Modularity, as supported by namespaces, source files, and exception handling C++ abstraction, including classes, class hierarchies, and templates in support of a synthesis of traditional programming, object-oriented programming, and generic programming Standard Library: containers, algorithms, iterators, utilities, strings, stream I/O, locales, numerics, and more The C++ basic memory model, in depth This fourth edition makes C++11 thoroughly accessible to programmers moving from C++98 or other languages, while introducing insights and techniques that even cutting-edge C++11 programmers will find indispensable. This book features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method—noticeable by a small space inside the spine—also increases durability.




The C++ Programming Language


Book Description

The second edition reflects the changes that have occurred as the C++ language has grown and developed over the last five years. This definitive guide, written by the designer of C++, now provides coverage of all of the features available in the most recent release, including multiple inheritance, typesafe linkage, and abstract classes. Includes two new chapters on how to design C++ programs.




A Tour of C++


Book Description

In A Tour of C++, Third Edition, Bjarne Stroustrup provides an overview of ISO C++, C++20, that aims to give experienced programmers a clear understanding of what constitutes modern C++. Featuring carefully crafted examples and practical help in getting started, this revised and updated edition concisely covers most major language features and the major standard-library components needed for effective use. Stroustrup presents C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, emphasizing newer language features. This edition covers many features that are new in C++20 as implemented by major C++ suppliers, including modules, concepts, coroutines, and ranges. It even introduces some library components in current use that are not scheduled for inclusion in the standard until C++23. This authoritative guide does not aim to teach you how to program (for that, see Stroustrup's Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you'll need for C++ mastery (for that, see Stroustrup's The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you won't find a shorter or simpler introduction.




Programming


Book Description

An introduction to programming by the inventor of C++, Programming prepares students for programming in the real world. This book assumes that they aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. It explains fundamental concepts and techniques in greater depth than traditional introductions. This approach gives students a solid foundation for writing useful, correct, maintainable, and efficient code. This book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. It presents modern C++ programming techniques from the start, introducing the C++ standard library to simplify programming tasks.