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 $
|Published (Last):||1 September 2004|
|PDF File Size:||13.21 Mb|
|ePub File Size:||8.42 Mb|
|Price:||Free* [*Free Regsitration Required]|
I think that new programming styles and new languages will start to overcome that barrier with time and experience. In that sense I find it almost regretable that it is not possible to create a normal named function object class with joosuttis same syntax as lambdas in the global scope, that provides automatically created constructor and members like lambdas.
That one application alone consumes over 2GB of memory when you load a project.
Full C++17 Filesystem Library Guide—Nico Josuttis : Standard C++
Check on this demo on ideone. Show only CppCon links.
You are not pedantic. It disqualifies ‘d’ for some very basic but very important applications. Never underestimate the inventiveness of nature.
The new stuff does add a lot of functionality, and that stuff is often damn useful, but sometimes you just want a function pointer.
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. For example, optimizations of functional coding styles have come a long way in recent years.
There is a useful list of books on Stack Overflow. And I won’t get you started on function pointer declarations. The only difference is that you have to pass those variables at the place where you define the lambda. However, where it all falls down is in reality.
There are several factors that I think will push the industry in that direction. I’m not advocating that we all learn about instruction pipelining and branch prediction but we certainly need to strike a better balance between expediency and reasonable use of resources.
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.
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 In particular, that includes just about anything that lives below application software in the stack OS, device drivers, network stack, etc.
It’s very difficult to scale ‘c’, it doesn’t easily support coding at a higher level. In this respect, function objects are still a better choice. You’re right that this is a deficiency. You make some good points, particularly when it comes to concurrency as this definitely will lead to a different way of programming.
Log in or sign up in seconds. So in my books this book is a suspect no pun intended. More importantly, I think the performance barrier itself will probably be different in a few years as well. For more specialised tasks such as graphics rendering, the chips have been highly parallel for a long time.
C is certainly less complex, but still has many shortcomings compared to modern languages. We already have desktop and laptop PCs with multiple cores today, and mobile devices and even embedded systems are starting to go that way as well. Welcome to Reddit, the front page of the internet. Horrible syntax, header files, compile times, many traps for a programmer to walk into and hundreds of weird corner cases.
Submit a new link. As commodity hardware gets faster, the commercial pressures push development toward rapid prototyping and product evolution, with less emphasis on achieving optimal speed when anything within a factor of 2—3x or much more, depending on the context is still fast enough for paying customers.
You are absolutely correct. With prefix dereference you need to remember which operator associates more strongly:. I completely agree that performance will always matter for some kinds of software. It’s usually solved by changing the dereference joskttis to a different character. This is where my analogy with programming using an assembler today comes in: You need enough people to grow the surrounding tools and libraries ecosystem.
On my machine sizeof std::