How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
"This is Effective C++ volume three - it's really that good." - Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee "There are very few books which all C++ programmers must have. Add Effective STL to that list." - Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts - the things they almost always do or almost always avoid doing - to get the most out of the library. Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it - and why. Highlights of Effective STL include: Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them. Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.
This title documents a convergence of programming techniques - generic programming, template metaprogramming, object-oriented programming and design patterns. It describes the C++ techniques used in generic programming and implements a number of industrial strength components.
In designing large-scale C++ applications, you are entering a dimension barely skimmed by most C++ books, particularly considering experience with small programming projects does not scale up to larger projects. This book unites high-level design concepts with specific C++ programming details to reveal practical methods for planning and implementing high-quality large C++ systems. You will learn the importance of physical design in large systems, how to structure your software as an acyclic hierarchy of components, and techniques for reducing link-time and compile-time dependencies. Then the book turns to logical design issues--architecting a component, designing a function, and implementing an object--all in the context of a large-project environment.
David Vandevoorde, Nicolai M. Josuttis
With the greatly increased use of templates, there is a real need in the C++ community for this information. This book is the next C++ classic, acting as both a complete reference as well as a tutorial. It emphasizes the practical use of templates, and includes real-world examples.
Stanley B. Lippman
There is a lot of misinformation and myth about the overhead and costs associated with C++. Now Stan Lippman, the acclaimed author of the C++ Primer, answers the call for a book that gives strategy guidelines for C++ programming. Inside the C++ Object Model explains where overhead costs reside and what they actually consist of. The author explains which parts vary by implementation and which are invariant. He tells how the various implementation models arose, points out areas where they are likely to evolve, and explains why they are what they are. This book is a must for C++ programmers who want to understand the semantic implications of the C++ object model and how the model affects their programs.
With the new C++ Standard and Technical Report 2 (TR2), multi-threading is coming to C++ in a big way. TR2 will provide higher-level synchronization facilities that allow for a much greater level of abstraction, and make programming multi-threaded applications simpler and safer. Concurrent programming is required if programmers are to take advantage of the multi-core microprocessors increasingly available from Intel and others. The new standard for C++ has extensions to the language that make concurrent programming more accessible to regular developers. As a guide and reference to the new concurrency features in the upcoming C++ Standard and TR2, this book is invaluable for existing programmers familiar with writing multi-threaded code in C++ using platform-specific APIs, or in other languages, as well as C++ programmers who have never written multithreaded code before.
The puzzles and problems in Exceptional C++ not only entertain, they will help you hone your skills to become the sharpest C++ programmer you can be. Many of these problems are culled from the famous Guru of the Week feature of the Internet newsgroup comp.lang.c++, moderated, expanded and updated to conform to the official ISO/ANSI C++ Standard. Try your skills against the C++ masters and come away with the insight and experience to create more efficient, effective, robust, and portable C++ code.
Nicolai M. Josuttis
A proven best-seller, updated for the new standard: still the most practical C++ Standard Library tutorial and most complete reference * *Thoroughly documents each library component incorporated in the brand-new C++ standard. *Clearly explains complex concepts, and presents the practical detail programmers need to use the Standard Library effectively. *Contains many examples of working code, all available for download at an accompanying website. The C++ Standard Library, 2/e, doesn't just provide comprehensive documentation of every library component associated with the newest C++ standard: it also offers clearly-written explanations of complex concepts, reviews practical programming details needed for effective use, and presents many useful examples of working code - all of them available for download. Fully updated to reflect the newest elements of the C++ Standard Library incorporated into the full ANSI/ISO C++ language standard, this book examines containers, iterators, function objects, STL algorithms, special containers, strings, numerical classes, internationalization, the IOStream library, and much more. Every component is presented in depth: Josuttis explains its purpose and design, presents crystal-clear examples, identifies traps and pitfalls, and offers exact signatures and definitions of its classes and functions. Comprehensive, detailed, readable, and practical, Josuttis' The C++ Standard Library has established itself as the definitive book on the topic: working developers will find this new edition even more useful.
Angelika Langer, Klaus Kreft
Standard C++ provides a foundation for creating new, improved, and more powerful C++ components. IOStreams and locales are two such major components for text internationalization. As critical as these two APIs are, however, there are few resources devoted to explaining them. "Standard C++ IOStreams and Locales" fills this informational gap. It provides a comprehensive description of, and reference to, the iostreams and locales classes, showing how to put them to use and offering advanced information on customizing and extending their basic operation. Written by two experts involved with the development of the standard, this book reveals the rationale behind the design of the APIs and points out their potential pitfalls. This book serves as both a guide and a reference to C++ components. Part I explains iostreams, what they are, how they are used, their underlying architectural concepts, and the techniques for extending the iostream framework. Part II introduces internationalization and shows you how to adapt your program to local conventions. Readers seeking an initial overview of the problem domain will find an explanation of what internationalization and localization are, how they are related, and how they differ. With examples, the authors show the differences among cultural conventions, how C++ locales can be used to address such differences, and how locale framework can be extended to handle further, nonstandard cultural conventions. "Standard C++ IOStreams and Locales" Explains formatting and error indication features of iostreams in detail Describes underlying concepts of the iostreams framework Demonstrates implementation of i/o operations for user-defined types Shows techniques for implementing extended stream and stream buffer classes Introduces internationalization Explains how to use standard features for internationalization Demonstrates techniques for implementation of user-defined internationalization services IOStreams and locales serve as a foundation library that provides a number of ready-to-use interfaces, as well as frameworks that can be customized and extended. The class reference to C++ IOStreams and locales completes this comprehensive resource, which belongs in the libraries of all intermediate and advanced C++ programmers. 0201183951B04062001
In the first edition ofThinking in C++, Bruce Eckel synthesized years of C++ teaching and programming experience into a beautifully structured course in making the most of the language. The book became an instant classic, winning the 1995Software Development Jolt ColaAward for best book of the year. Now, inThinking in C++, Volume I, Second Edition, Eckel has thoroughly rewritten his masterpiece to reflect all the changes introduced in C++ by the final ANSI/ISO C++ standard. Every page has been revisited and rethought, with many new examples and exercises throughout -- all with a single goal: to help you understand C++ "down to the bare metal," so you can solve virtually any development problem you encounter. Eckel begins with a detailed look at objects and their rationale, then shows how C++ programs can be constructed from off-the-shelf object libraries. This edition includes a new, chapter-length overview of the C features that are used in C++ -- plus a new CD-ROM containing an outstanding C seminar that covers all the foundations developers need before they can truly take advantage of C++. Eckel next introduces key object-oriented techniques such as data abstraction and implementation hiding. He then walks through initialization and cleanup; function overloading and default arguments; constants; inline functions; name control; references and the copy constructor; operator overloading; and more. There are chapters on dynamic object creation; inheritance and composition; polymorphism and virtual functions, and templates. (Bonus coverage of string, templates, and the Standard Template Library, can be found at Eckel's web site.) Every chapter contains many modular, to-the-point examples, plus exercises based on Eckel's extensive experience teaching C++ seminars. Put simply, Eckel has made an outstanding book on C++ even better. For all C++ programmers, and for programmers experienced in other languages who want to strengthen their C++ and object development skills.
An Introduction to Programming by the Inventor of C++ Preparation for Programming in the Real World The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. Focus on Fundamental Concepts and Techniques The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code. Programming with Today's C++ (C++11 and C++14) The 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. The book presents modern C++ programming techniques from the start, introducing the C++ standard library and C++11 and C++14 features to simplify programming tasks. For Beginners—And Anyone Who Wants to Learn Something New The book is primarily designed for people who have never programmed before, and it has been tested with many thousands of first-year university students. It has also been extensively used for self-study. Also, practitioners and advanced students have gained new insight and guidance by seeing how a master approaches the elements of his art. Provides a Broad View The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics (such as text processing, testing, and the C programming language) and provides abundant reference material. Source code and support supplements are available from the author's website.
The authors begin by explaining why C++ is worth learning and then move on to the most important elements of C++. This book emphasizes understanding and practical use of the language. It explores the basics, covers inheritance and object-oriented programming, discusses templates and the powerful kind of abstraction they provide, and shows how to design and use libraries.
Software "style" is about finding the perfect balance between overhead and functionality... elegance and maintainability... flexibility and excess. In Exceptional C++ Style , legendary C++ guru Herb Sutter presents 40 new programming scenarios designed to analyze not only the what but the why and help you find just the right balance in your software. Organized around practical problems and solutions, this book offers new insight into crucial C++ details and interrelationships, and new strategies for today's key C++ programming techniques--including generic programming, STL, exception safety, and more. You'll find answers to questions like: What can you learn about library design from the STL itself? How do you avoid making templated code needlessly non-generic? Why shouldn't you specialize function templates? What should you do instead? How does exception safety go beyond try and catch statements? Should you use exception specifications, or not? When and how should you "leak" the private parts of a class? How do you make classes safer for versioning? What's the real memory cost of using standard containers? How can using const really optimize your code? How does writing inline affect performance? When does code that looks wrong actually compile and run perfectly, and why should you care? What's wrong with the design of std::string? Exceptional C++ Style will help you design, architect, and code with style--and achieve greater robustness and performance in all your C++ software.
British Standards Institution
The definitive reference for any C programmer or for programmers needing to work with C programs. Every book written about C refers frequently to the international standard that defines the language, this will be a must-have companion volume for everyone who is serious about programming in this language. * The complete, current C standard (ISO/IEC 9899-1999) as approved by international standards bodies (BSI and ANSI) * The ONLY available bound version of the standard * Includes the C rationale which provides a valuable insight into why certain decisions were made during the creation of the language * An introductory chapter explains what the standards process is and how the reader can participate in the standards process
Davide Di Gennaro
The book tries to be both an introduction and a reference to C++ template metaprogramming; TMP is presented in the book as a set of techniques that will bring a new style in C++ and make code exceptionally clear and efficient. The book deals with language aspects, design patterns, examples and applications (seen as case studies). Special emphasis is put on small reusable techniques that will improve the quality of daily work. Visit http: //acppmp.blogspot.com/ for book errata and updates
Designing scalable software in C++ requires more than just a sound understanding of the logical design issues covered in most C++ programming books. To succeed, senior developers, architects, and project leaders need a grasp of high-level physical design concepts with which even expert software developers have little or no experience. This concise, approachable guide takes a practitioner's view of large-scale software development, while providing all the information you need to quickly apply architectural-level physical design concepts in your everyday work. All content is presented in self-contained modules that make it easy to find what you need -- and use it. John Lakos presents crucial new material on runtime dependencies and other architectural issues, as well as realistic small examples that add value by illuminating broad and deep issues in large-scale C++ application design.