Join Amazon Prime and get unlimited Free One-Day Delivery. Already a member? Sign in.

 

or
Sign in to turn on 1-Click ordering.
 
   
More Buying Choices
40 used & new from £15.10

Have one to sell? Sell yours here
 
   
Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth Series)
 
See larger image
 

Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth Series) (Paperback)

by Andrei Alexandrescu (Author), Scott Meyers (Author), John Vlissides (Author)
4.8 out of 5 stars See all reviews (6 customer reviews)
RRP: £32.99
Price: £28.04 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £4.95 (15%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In stock.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.

Only 4 left in stock--order soon (more on the way).

Want guaranteed delivery by Saturday, July 11? Choose Express delivery at checkout. See Details
29 new from £18.70 11 used from £15.10
Other Editions: RRP: Our Price: Other Offers:
Paperback (1st) Order it used

Frequently Bought Together

Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth Series) + Exceptional C++ + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)
Price For All Three: £67.42

Show availability and shipping details


Customers Who Bought This Item Also Bought

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)

by Scott Meyers
4.8 out of 5 stars (44)  £19.19
Exceptional C++

Exceptional C++

by Herb Sutter
5.0 out of 5 stars (8)  £20.19
More Effective C++: 35 New Ways to Improve Your Programs and Designs (Professional Computing)

More Effective C++: 35 New Ways to Improve Your Programs and Designs (Professional Computing)

by Scott Meyers
4.7 out of 5 stars (7)  £28.04
C++ Coding Standards : Rules, Guidelines, and Best Practices

C++ Coding Standards : Rules, Guidelines, and Best Practices

by Herb Sutter
4.0 out of 5 stars (1)  £21.24
Effective STL: 50 Specific Ways to Improve the Use of the Standard Template Library (Addison-Wesley Professional Computing Series)

Effective STL: 50 Specific Ways to Improve the Use of the Standard Template Library (Addison-Wesley Professional Computing Series)

by Scott Meyers
4.5 out of 5 stars (6)  £26.34
Explore similar items

Product details

  • Paperback: 352 pages
  • Publisher: Addison Wesley (22 Feb 2001)
  • Language English
  • ISBN-10: 0201704315
  • ISBN-13: 978-0201704310
  • Product Dimensions: 23.1 x 18.8 x 2 cm
  • Average Customer Review: 4.8 out of 5 stars See all reviews (6 customer reviews)
  • Amazon.co.uk Sales Rank: 58,672 in Books (See Bestsellers in Books)

    Popular in these categories:

    #10 in  Books > Computing & Internet > Computer Science > Software Design, Testing & Engineering > Design Patterns
    #46 in  Books > Computing & Internet > Programming > Languages > C & C++
  • See Complete Table of Contents

Product Description

Product Description

In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and virtuosity, Alexandrescu offers a cutting-edge approach to software design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code. The book introduces the concept of generic components, reusable design templates that enable an easier and more seamless transition from design to application code, generate code that better expresses the original design intention, and support the reuse of design structures with minimal recoding. The author then shows how to apply this approach to recurring, real-world issues that C++ programmers face in their day-to-day activity. All code is available on the Web, along with Alexandrescu's downloadable Loki C++ library, which provides powerful out-of-the-box functionality for virtually any C++ project. For experienced C++ programmers who have at least some familiarity with the Standard Template Library (STL).



From the Back Cover

Modern C++ Designis an important book. Fundamentally, it demonstrates ‘generic patterns’ or ‘pattern templates’ as a powerful new way of creating extensible designs in C++–a new way to combine templates and patterns that you may never have dreamt was possible, but is. If your work involves C++ design and coding, you should read this book. Highly recommended.
–Herb Sutter

What’s left to say about C++ that hasn’t already been said? Plenty, it turns out.
–From the Foreword by John Vlissides

In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and programming virtuosity, Alexandrescu offers a cutting-edge approach to design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code.

This book introduces the concept of generic components–reusable design templates that produce boilerplate code for compiler consumption–all within C++. Generic components enable an easier and more seamless transition from design to application code, generate code that better expresses the original design intention, and support the reuse of design structures with minimal recoding.

The author describes the specific C++ techniques and features that are used in building generic components and goes on to implement industrial strength generic components for real-world applications. Recurring issues that C++ developers face in their day-to-day activity are discussed in depth and implemented in a generic way. These include:

  • Policy-based design for flexibility
  • Partial template specialization
  • Typelists–powerful type manipulation structures
  • Patterns such as Visitor, Singleton, Command, and Factories
  • Multi-method engines

For each generic component, the book presents the fundamental problems and design options, and finally implements a generic solution.

In addition, an accompanying Web site, http://www.awl.com/cseng/titles/0-201-70431-5, makes the code implementations available for the generic components in the book and provides a free, downloadable C++ library, called Loki, created by the author. Loki provides out-of-the-box functionality for virtually any C++ project.

Get a value-added service! Try out all the examples from this book at www.codesaw.com. CodeSaw is a free online learning tool that allows you to experiment with live code from your book right in your browser.



0201704315B11102003

See all Product Description

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below

Your tags: Add your first tag
 

What Do Customers Ultimately Buy After Viewing This Item?


 

Customer Reviews

6 Reviews
5 star:
 (5)
4 star:
 (1)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.8 out of 5 stars (6 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
65 of 67 people found the following review helpful:
5.0 out of 5 stars Simply the best book on C++ programming I have ever read., 27 Mar 2001
By A Customer
Every couple of years there appears a classic, Stroustrupp, Advanced C++, the GOF patterns book, Eff C++ and More Eff C++, now there is this. Everyone has an opinion, and mine is this. Modern C++ Design is top of the list. It deserves to be no more than an arms length away from every serious programmer, designer, academic or teacher. Inside this you will find breath-taking displays of sheer wizardry, creativity, and inventiveness from a master craftsman. If I were to single out my favourite features of this book it would have to be the following, and don't be put off if you don't know what they are, just accept it that they are astonishing programming techniques and design tools. Policy classes. An astonishingly simple but elegant programming technique that enforces design time decisions completely. Typelists and a family of algorithms for manipulating them. Simply astonishingly, jaw-droppingly elegant structures for manipulating lists of types. The best description, and certainly the best implementation, of some of the GOF patterns I have ever seen. Have you read the consequences of a pattern and just singled in on one item which is exactly what you need. Then in another project, you can't use that implementation because you need to implement a different feature. E.g., single threaded in one project and multi-threaded in another or creating objects on the stack and then needing to use the heap. These implementations show you how to do all this, and more, in one suite of code. The Abstract Factory and Multi Method chapters are quite simply astonishing feats of engineering. It contains the best description of smart pointers I have ever seen. Ever wondered why std::string does not convert to a const char* but other string classes do?. Ever tried to write no-intrusive pre and post conditions. Read this chapter. Finally, it comes with a down loadable library of code (Loki) that is worth the price of the book alone. I expect that very soon, the word Loki will be as much a part of the C++ programmers language as STL
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
12 of 12 people found the following review helpful:
4.0 out of 5 stars template metaphysics, 2 Mar 2007
This is 300 pages of the hardest of hardcore template metaprogramming you could currently hope to read. As a result, there is a risk you may find more to admire and speculate upon from afar, than to actually use. Various factors will decide this, from the robustness of your compiler, your comfort with far-out template wackiness, and your confidence in debugging and maintaining the result.

One thing is not in doubt: C++ metaprogramming is devilishly clever. That's part of its appeal. It's also capable of producing flexible, efficient families of software. Modern C++ Design pushes the boundaries of TMP further than the more specialised matrix domain detailed in Czarnecki and Eisenecker's Generative Programming (a recommended prologue to this book). Here, the aim is implementing entire design patterns. This is a fairly bold claim, as the received wisdom on design patterns is that there isn't a canonical form that can be presented in code.

And that still holds true. Instead, the code in Modern C++ Design is metacode built on two big ideas: policies and typelists, which are described in the opening chapters, along with some other useful tools. The hard intellectual work is done here, especially the typelist chapter, although previous exposure to the likes of Generative Programming definitely softens the blow. Policies are what Java programmers know as Dependency Injection, except one level of abstraction up (the relationship between classes and objects in DI is done with templates and classes with policies), and with the template instantiation and specialisation rules of C++ providing an extra layer of flexibility. Typelists are exactly as the name suggests - a list of types, but they exist only at compile time. They're fed to the TMP machinery, which spits out a class hierarchy based on the supplied list.

With these tools in place, Andrei Alexandrescu then proceeds to show how they can be used to work some magic. Template versions of the command, visitor, abstract factory and factory method patterns are presented, along with other abstractions like smart pointers (perhaps the most orthodox chapter of the book), tuples, and multiple dispatch.

The latter topic provides a connection to James Coplien's Advanced C++, which also discussed multimethods, albeit before templates entered the language. The books share a certain similarity, not so much in content, but in the spirit of stretching the boundaries of C++, and perhaps also in stretching its readability and maintainability.

For all the virtuosity on display here (and in Coplien's book), I'm not sure if I'd to use these techniques in my own C++. This may just be down to my own mediocrity as a programmer, but TMP is more than just an idiomatic application of C++, it's really an entirely new language and not a very friendly one. When encoding error messages into class names is a best practice, you know you're pushing the envelope.

There's no discussion in this book of where these designs are appropriate - I suspect the most rococo code will end up hidden safely behind frameworks and libraries such as the Loki library described in this book. Some discussion of these bigger picture strategic and cultural issues would have been handy, otherwise, a title like 'Modern C++ Design' suggests that herein lie techniques to sprinkle liberally throughout your code, and I suspect that this is not the case.

If you, your co-workers, and any customers that need to look at your code are all template metagenii, this is going to be the most productive 300 pages you ever read. Lesser mortals will find much to wonder at and admire, and a whole new perspective on design patterns, but perhaps less to put into practice.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
11 of 12 people found the following review helpful:
5.0 out of 5 stars Excellent but may be too advanced for your compiler, 4 April 2002
By A Customer
This is an excellent book, well written well structured and very interesting. The Library and the techniques described may not be of every day use but on those occasions when they are of use they would be very handy to have. The one problem is that these are advanced techniques and a lot of compilers (specifically Visual C++ 6/7) can't currently build the code. It is possible to rewrite the library to get around the compiler issues but it's a lot of extra work. That aside, compilers will be coming online that can use it soon so it is worth reading now in order to be able to start using it as soon as possible.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

5.0 out of 5 stars A great way to discover and understand advanced programming techniques
An excellent book and a IMHO a MUST if you want to get a professional C++ (and not only) developer.
It covers lots of practical topics, unveiling advanced techniques and... Read more
Published 16 months ago by Fabrizio Angius

5.0 out of 5 stars Well worth buying.
Despite the advanced concepts covered the book is very well written and quite readable, but it does require you to think! Read more
Published on 18 Feb 2005 by C. D. Pickering

5.0 out of 5 stars Don't forget to read this book
This is a fantastic book. It's concise. It's precise. It contains many advances C++ idioms you would never have thought possible.
Published on 17 Jul 2001

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
This product's forum (0 discussions)
  Discussion Replies Latest Post
  No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]

   


Listmania!


Look for similar items by category


Feedback


Health & Beauty at Amazon.co.uk

Elemis Resurface and Renew Skin Care Gift Set of 4 Products
From soap to shavers, massagers to mascara, stock up on your daily essentials or truly pamper yourself.

Discover Health & Beauty

 

More From Andrei Alexandrescu

C++ Coding...

C++ Coding Standards : Rules...

Consistent, high-quality coding standards improve software quality... Read more
£24.99 £21.24

 

A Close Shave

Philips Nivea Coolskin HS8060 Moisturizing Rotary Shaving System
For all types of hair removal, stay smooth with Amazon.co.uk.

Discover Shaving & Hair Removal

 

Treat Someone

Amazon.co.uk Gift Certificates--available in any amount from £5 to £500 With an Amazon.co.uk Gift Certificate, you can get them what they want (even if you don't know what that is).

Learn more about Gift Certificates

 
Ad

Where's My Stuff?

Delivery and Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue Shopping: Top Sellers
The Girl Who Played with Fire
Breaking Dawn (Twilight Saga)
The Girl with the Dragon Tattoo
The Host
The Host by Stephenie Meyer

amazon.co.uk Amazon Home
International Sites:  United States  |  Germany  |  France  |  Japan  |  Canada  |  China
Business Programs: Sell on Amazon  |  Fulfilment by Amazon  |  Join Associates  |  Join Advantage
Customer Service  |  Help  |  View Basket  |  Your Account
About Amazon.co.uk  |  Careers at Amazon
Conditions of Use & Sale |  Privacy Notice  © 1996-2009, Amazon.com, Inc. and its affiliates