Skip to content

dikunonGitHub/Hands-On-Design-Patterns-with-CPP

 
 

Repository files navigation

Hands-On Design Patterns with C++

Hands-On Design Patterns with C++

This is the code repository for Hands-On Design Patterns with C++, published by Packt.

Solve common C++ problems with modern design patterns and build robust applications

What is this book about?

C++ is a general-purpose programming language built with a bias towards embedded programming and systems programming. Design patterns are, in essence, a library of reusable components, only for software architecture, not for a concrete implementation.

This book covers the following exciting features:

  • Recognize some of the most common design patterns used in C++, and what additional information is expressed by their use in context.
  • Understand how to use C++ generic programming to solve some of the most common design problems.
  • Explore the most powerful C++ idioms, their strengths, and drawbacks.
  • Rediscover some of the most popular C++ idioms, such as Resource Acquisition Is Initialization, and learn the new ways they can be used together with generic programming.
  • Understand the impact of different design and implementation choices on the program performance, and how to write well-designed and readable programs without sacrificing performance.

If you feel this book is for you, get your copy today!

https://www.packtpub.com/

Instructions and Navigations

All of the code is organized into folders. For example, Chapter02.

The code will look like the following:

template <typename T> 
T increment(T x) { return x + 1; }

Following is what you need for this book: This book is for experienced C++ developers and programmers who wish to learn about software design patterns and principles and apply them to create robust, reusable, and easily maintainable apps.

With the following software and hardware list you can run all code files present in the book (Chapter 1-18).

Software and Hardware List

Chapter Software required OS required
5,6,8-11,15 Google Benchmark Windows, Mac OS X, and Linux
5 Google Test Windows, Mac OS X, and Linux
3,4 Guidelines Support Library (GSL) Windows, Mac OS X, and Linux
11 Folly Windows, Mac OS X, and Linux

Errata

  • The code block at page 43 should be as follows:
Group<int, long> g(3, 5);
int(g); // 3
long(g); // 5

  • Page 429: The first code block on this page should be as follows:
void Point::accept(Visitor& v){
    v.visit(x_);    // double
    v.visit(y_);    // double
}

void Circle::accept(Visitor& v){
    v.visit(c_);    // Point
    v.visit(r_);    // double
}

void Line::accept(Visitor& v){
    v.visit(p1_);    // Point
    v.visit(p2_);    // Point
}

Related products

Get to Know the Author

Fedor G Pikus is a chief engineering scientist in the Design-to-Silicon division of Mentor Graphics (a Siemens business), and is responsible for the long-term technical direction of Calibre products, the design and architecture of software, and research into new software technologies. His earlier positions include senior software engineer at Google and chief software architect at Mentor Graphics. Fedor is a recognized expert on high-performance computing and C++. He has presented his works at CPPCon, SD West, DesignCon, and in software development journals, and is also an O'Reilly author. Fedor has over 25 patents, and over 100 papers and conference presentations on physics, EDA, software design, and C++.

Suggestions and Feedback

Click here if you have any feedback or suggestions.

About

Hands-On Design Patterns with C++, published by Packt

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 100.0%