GithubHelp home page GithubHelp logo

dikunongithub / hands-on-design-patterns-with-cpp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from packtpublishing/hands-on-design-patterns-with-cpp

0.0 0.0 0.0 105 KB

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

License: MIT License

C 100.00%

hands-on-design-patterns-with-cpp's Introduction

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.

hands-on-design-patterns-with-cpp's People

Contributors

fpikus avatar gaurav-packt avatar manjusha29 avatar packt-itservice avatar packt-pradeeps avatar roycejpackt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.