The C++ Standard Library, 2nd edition by Nicolai Josuttis. The Best-Selling Programmer Resource – Updated for C++ Also out: C++17 – The Complete. Programming with C++17 by Nicolai Josuttis. Although it is not as big a step as C++11, it contains a large number of small and valuable language and library. Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 A Tutorial and Reference (2nd Edition) by Nicolai M. Josuttis Hardcover $

Author: Moogushakar Tygokinos
Country: Sierra Leone
Language: English (Spanish)
Genre: Career
Published (Last): 22 March 2016
Pages: 175
PDF File Size: 15.67 Mb
ePub File Size: 11.39 Mb
ISBN: 890-1-53580-648-7
Downloads: 69865
Price: Free* [*Free Regsitration Required]
Uploader: Nikolmaran

Hardly anyone programs raw assembly today, because getting good performance out of modern chips is a specialist skill and we have compiler writers who spend a lot of time getting good at it, so most of us will produce faster software by writing in those compiled languages and leaving the tricky assembly-level work to the experts.

This is where my analogy with programming using an assembler today comes in: I believe the increased size of std:: Submit a new josuttsi post. You are not pedantic. For example, optimizations of functional coding styles have come a long way in recent years. However, where it all falls down is in reality. Function classes also come with some downsides. Stronger typing helps catch idiotic bugs, namespacing helps group things, operator overloading makes coded equations more readable, destructors allow for more relaible resource cleanup, etc C is certainly less complex, but still has many shortcomings compared to modern languages.

In that sense I find it almost regretable that it is not possible to create a normal named function object class with the same syntax as lambdas in the global scope, that provides automatically created constructor and members like lambdas.

Frankly they chose to limit d’s scalability. It’s usually solved by changing the dereference operator to a different joauttis.

That one application alone consumes over 2GB of memory when you load a project. It’s very difficult to scale ‘c’, it doesn’t easily support coding at a higher level. I think he might have been drunk. Even PHP and other messes of languages.


I think that new programming styles and new languages will start to overcome that barrier with time and experience. No, you will never find a performant programming language without weird corner cases and programmer traps. In my experience, writing toy examples to understand how something works and solving real problems using it are two very, very different things.

That is an extremely difficult theoretical problem and an active research area today, but then a few years ago we might have said something similar about just-in-time compilation, and a few years before that we talked about dropping out of C to write the performance-sensitive parts of our code in assembly language. You are absolutely correct. The current trend of sweeping aside all concerns of performance and particularly memory usage produces such ‘gems’ as Visual Studio Want to add to the discussion?

You make some good points, particularly when it comes to concurrency as this definitely will lead to a different way of programming.

That is to say, the straight line optimizations will always have some value, but only if 111 can make everything efficient enough at the higher level first. It’s not going to gain popularity by making incompatible changes, and I’ll take backwards compatibility and slight inconveniences over program-breaking changes to the standard for aesthetic purposes.

The point is resources are not infinite and jouttis are not ‘free’. You’re right that this is a deficiency. So in my books this book is a suspect no pun intended.

Capturing variables – either by value or by reference – is absolutely equivalent to passing them to the constructor of a function object and making them accessible to operator as member variables. Jozuttis state of the lambda object has changed between calls.


Become a Redditor and subscribe to one of thousands of communities. It disqualifies ‘d’ for some very basic but very important applications. Log in or sign up in seconds. With prefix dereference you need to remember which operator associates more strongly: The new stuff does add a lot of functionality, and that stuff is often damn useful, but sometimes you just want a function pointer.


Welcome to Reddit, the front page of the internet. The garbage collection is its achilles heel frankly.

Nicolai M. Josuttis: The C++ Standard Library

On my machine sizeof std:: And I won’t get you started on function pointer declarations. In particular, that includes just about anything that lives below application software in the stack OS, device drivers, network stack, etc. To become successful a new programming language requires not only technical merit but also a critical mass of users.

The more we train modern developers that they are, the bigger the problem we will have. Microsoft suggest moving to 64 bits to solve the problem! It is more efficient and more effective to write in a compiled language and let the tools written by the experts take care of the fine details, because they will generate better assembly in an automated way than most of us would by hand anyway. Do I really need to? Never underestimate the inventiveness of nature. For more specialised tasks such as graphics rendering, the chips have been highly parallel for a long time.

Show only CppCon links. Apparently Visual Studio will ‘fix’ this by delaying the loading of a load of dlls – however this points to an alarming trend.

I thought it was usually the caret, but that still leaves this case ambiguous with bitwise XOR. There are several factors that I think will push the industry in that direction.

With prefix dereference you need to remember which operator associates more strongly:.