6 private links
Memoization is a pretty well-known optimization technique which consists in “remembering” (i.e.: caching) the results of previous calls to a function, so that repeated calls with the same parameters are resolved without repeating the original computation.
This article examines various aspects of type declaration and deduction in both current standard
C++ as well as the forthcoming revised standard (C++0x), with an eye towards helping developers
understand how and why the effective type of a variable can be different from what's “obvious.”
Readers will find the article most useful if they are familiar with the basic rules for template argu
ment deduction, are aware of the difference between lvalues and rvalues, and have had some
exposure to the new C++0x features lvalue and rvalue references,
auto
variables, and lambda
expressions
Full devirtualization replaces given polymorphic by a direct call (that can get inlined later). Speculative devirtualization is a weaker form turning polymorphic call to a conditional testing whether the target is the predicted one and going by direct call path if it happens to be so and doing the indirect call otherwise.
Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code.
Really good explanation of lambda implementations in c++
One of the most exciting features of C++11 is ability to create lambda functions (sometimes referred to as closures). What does this mean? A lambda function is a function that you can write inline in your source code (usually to pass in to another function, similar to the idea of a functor or function pointer).
This article discusses a series of features new to C++11 that all developers should learn and use. There are lots of new additions to the language and the standard library, and this article barely scratches the surface. However, I believe some of these new features should become routine for all C++ developers
cheerp is the C++ compiler for the web
Write a web application, or port your existing one, all in C++. cheerp will generate JavaScript code that can run on any browser.
The idea of transactional memory is to create a block of a code that will be executed 'atomically'. Thanks to this abstraction, the creation of a concurent program is a bit easier. Indeed, it avoids the usage of locks to protect a shared data-structure or variable. This block delimits the start and the commit of the transaction.
libtins is a high-level, multiplatform C++ network packet sniffing and crafting library.
Its main purpose is to provide the C++ developer an easy, efficient, platform and endianess-independent way to create tools which need to send, receive and manipulate network packets.
A 3D game engine written in Go!
A blog about D programming language
C library to restrict resources access and to perform basic profiling on subprocesses.