C++17 - The Complete Guide

C++17 - The Complete Guide
Author: Nicolai M Josuttis
Publisher: Nicojosuttis
Total Pages: 456
Release: 2019-09-06
Genre:
ISBN: 9783967309171

All the new language and library features of C++17 (for those who know the previous versions of C++). C++17 is the next evolution in modern C++ programming, which is already now supported by the latest version of gcc, clang, and Visual C++. Although it is not as big a step as C++11, it contains a large number of small and valuable language and library features, which will change the way we program in C++. As usual, not everything is self-explanatory, combining new features gives even more power, and there are hidden traps. This book presents all the new language and library features of C++17. It covers the motivation and context of each new feature with examples and background information. The focus is on how these features impact day-to-day programming, what it means to combine them, and how to benefit from this in practice.

C++17 in Detail

C++17 in Detail
Author: Bartłomiej Filipek
Publisher: Independently Published
Total Pages: 378
Release: 2019-07-18
Genre:
ISBN: 9781798834060

C++17 is a major update to the language and brings many exciting additions and improvements that will change your pre for the better. This book shows you all of the significant changes in the new Standard. I spent hundreds of hours investigating how the new features work to ensure this book is helpful and practical. It will not only save you time but will guide you through lots of nuances of the language and the Standard Library. Among the dozens of C++17's enhancements described in the book, you will learn about the following: Class Template Argument Deduction Structured Bindings Fold Expressions Inline Variables Parallel Algorithms Polymorphic Allocator std::any std::byte std::filesystem std::from_chars std::optional std::string_view std::variant [[nodiscard]] if constexpr If you have experience with C++11/14 and you want to advance to the latest C++ Standard, then pick up the book and start reading. "If you've ever asked 'what's in C++17 and what does it mean for me and my pre?' -- and I hope you have -- then this book is for you." Herb Sutter The book is also available as ebook @Leanpub: https://leanpub.com/cpp17indetail

C++ Templates

C++ Templates
Author: David Vandevoorde
Publisher: Addison-Wesley Professional
Total Pages: 2818
Release: 2017-09-14
Genre: Computers
ISBN: 013477874X

Templates are among the most powerful features of C++, but they remain misunderstood and underutilized, even as the C++ language and development community have advanced. In C++ Templates, Second Edition, three pioneering C++ experts show why, when, and how to use modern templates to build software that’s cleaner, faster, more efficient, and easier to maintain. Now extensively updated for the C++11, C++14, and C++17 standards, this new edition presents state-of-the-art techniques for a wider spectrum of applications. The authors provide authoritative explanations of all new language features that either improve templates or interact with them, including variadic templates, generic lambdas, class template argument deduction, compile-time if, forwarding references, and user-defined literals. They also deeply delve into fundamental language concepts (like value categories) and fully cover all standard type traits. The book starts with an insightful tutorial on basic concepts and relevant language features. The remainder of the book serves as a comprehensive reference, focusing first on language details and then on coding techniques, advanced applications, and sophisticated idioms. Throughout, examples clearly illustrate abstract concepts and demonstrate best practices for exploiting all that C++ templates can do. Understand exactly how templates behave, and avoid common pitfalls Use templates to write more efficient, flexible, and maintainable software Master today’s most effective idioms and techniques Reuse source code without compromising performance or safety Benefit from utilities for generic programming in the C++ Standard Library Preview the upcoming concepts feature The companion website, tmplbook.com, contains sample code and additional updates.

C++17 STL Cookbook

C++17 STL Cookbook
Author: Jacek Galowicz
Publisher: Packt Publishing Ltd
Total Pages: 523
Release: 2017-06-28
Genre: Computers
ISBN: 1787121763

Over 90 recipes that leverage the powerful features of the Standard Library in C++17 About This Book Learn the latest features of C++ and how to write better code by using the Standard Library (STL). Reduce the development time for your applications. Understand the scope and power of STL features to deal with real-world problems. Compose your own algorithms without forfeiting the simplicity and elegance of the STL way. 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 of the newest version of C++: C++ 17. What You Will Learn Learn about the new core language features and the problems they were intended to solve Understand the inner workings and requirements of iterators by implementing them Explore algorithms, functional programming style, and lambda expressions Leverage the rich, portable, fast, and well-tested set of well-designed algorithms provided in the STL Work with strings the STL way instead of handcrafting C-style code Understand standard support classes for concurrency and synchronization, and how to put them to work Use the filesystem library addition available with the C++17 STL In Detail C++ has come a long way and is in use in every area of the industry. Fast, efficient, and flexible, it is used to solve many problems. The upcoming version of C++ will see programmers change the way they code. If you want to grasp the practical usefulness of the C++17 STL in order to write smarter, fully portable code, then this book is for you. Beginning with new language features, this book will help you understand the language's mechanics and library features, and offers insight into how they work. Unlike other books, ours takes an implementation-specific, problem-solution approach that will help you quickly overcome hurdles. You will learn the core STL concepts, such as containers, algorithms, utility classes, lambda expressions, iterators, and more, while working on practical real-world recipes. These recipes will help you get the most from the STL and show you how to program in a better way. By the end of the book, you will be up to date with the latest C++17 features and save time and effort while solving tasks elegantly using the STL. Style and approach This recipe-based guide will show you how to make the best use of C++ together with the STL to squeeze more out of the standard language

A Complete Guide to Programming in C++

A Complete Guide to Programming in C++
Author: Ulla Kirch-Prinz
Publisher: Jones & Bartlett Learning
Total Pages: 852
Release: 2002
Genre: Computers
ISBN: 9780763718176

This guide was written for readers interested in learning the C++ programming language from scratch, and for both novice and advanced C++ programmers wishing to enhance their knowledge of C++. The text is organized to guide the reader from elementary language concepts to professional software development, with in depth coverage of all the C++ language elements en route.

The C++ Standard Library

The C++ Standard Library
Author: Nicolai M. Josuttis
Publisher: Addison-Wesley
Total Pages: 1190
Release: 2012-05-25
Genre: Computers
ISBN: 0132977737

The Best-Selling C++ Resource Now Updated for C++11 The C++ standard library provides a set of common classes and interfaces that greatly extend the core C++ language. The library, however, is not self-explanatory. To make full use of its components–and to benefit from their power–you need a resource that does far more than list the classes and their functions. The C++ Standard Library: A Tutorial and Reference, Second Edition, describes this library as now incorporated into the new ANSI/ISO C++ language standard (C++11). The book provides comprehensive documentation of each library component, including an introduction to its purpose and design; clearly written explanations of complex concepts; the practical programming details needed for effective use; traps and pitfalls; the exact signature and definition of the most important classes and functions; and numerous examples of working code. The book focuses in particular on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms. The book covers all the new C++11 library components, including Concurrency Fractional arithmetic Clocks and timers Tuples New STL containers New STL algorithms New smart pointers New locale facets Random numbers and distributions Type traits and utilities Regular expressions The book also examines the new C++ programming style and its effect on the standard library, including lambdas, range-based for loops, move semantics, and variadic templates. An accompanying Web site, including source code, can be found at www.cppstdlib.com.

C Programming

C Programming
Author: August Hansen
Publisher: Addison Wesley Publishing Company
Total Pages: 396
Release: 1989
Genre: Computers
ISBN:

Bestselling C author Hansen has produced this highly accessible guide to C language that is appropriate for both beginners who want a clear, authoritative introduction to C and experienced C programmers who want a well-organized reference.

Mastering the C++17 STL

Mastering the C++17 STL
Author: Arthur O'Dwyer
Publisher: Packt Publishing Ltd
Total Pages: 379
Release: 2017-09-28
Genre: Computers
ISBN: 1787288234

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.

Working Effectively with Legacy Code

Working Effectively with Legacy Code
Author: Michael Feathers
Publisher: Prentice Hall Professional
Total Pages: 457
Release: 2004-09-22
Genre: Computers
ISBN: 0132931753

Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.