background preloader


Facebook Twitter

Machine Objects - Hierarchical state machines in C++ 1 Introduction The Machine Objects class library allows the creation of state machines based on the "State" design pattern in plain C++.

Machine Objects - Hierarchical state machines in C++

It extends the pattern with the option to create hierarchical state machines, making it possible to convert the popular UML statechart notation to working code in a straightforward way. Other features are entry and exit actions, state histories and state variables. The "just show me code" link to an example state machine: Microwave 2 Motivation In my experience as software developer I have found the State design pattern to be very useful.

Another important property that stems from this simplicity is orthogonality: the pattern can be combined with other design elements, patterns and idioms in arbitrary ways. In contrast stand tool supported approaches to state machine creation (of which there is no shortage). Unfortunately the "State" pattern is limited in scope because it does not allow for hierarchical state machines. 3 Installation 4 Design 5.6 History. GitHub - sumatrapdfreader/sumatrapdf: SumatraPDF reader. ParC.


The C++ Conference. Visual C++ in Visual Studio 2015 RC. The Visual C++ language and development tools help you develop native Windows Store apps, native desktop apps, and managed apps that run on the .NET Framework.

Visual C++ in Visual Studio 2015 RC

Windows Store Apps Find guides and reference content on the Windows Developer Center. Welcome Back to C++ (Modern C++) C++ is one of the most widely used programming languages in the world.

Welcome Back to C++ (Modern C++)

Well-written C++ programs are fast and efficient. The language is more flexible than other languages because you can use it to create a wide range of apps—from fun and exciting games, to high-performance scientific software, to device drivers, embedded programs, and Windows client apps. Boost C++ Libraries. Threads Basics. Author: Hans-J.

Threads Basics

Boehm Abstract. Jot. Abstract Generic functions and classes typically accept a fixed number of type arguments.


However, generic functions and classes that accept a variable number of type arguments have proven to be a very useful, even though there is no support for this feature in C++. Numerous foundational libraries rely on clever template and preprocessor tricks to emulate such variable-length templates. By several measures these emulations are inadequate. This paper describes variadic templates, an extension to the C++ language that significantly improves existing implementations of widely used C++ libraries in terms of code size, quality of error diagnostics, compilation speed, and generality.

Many situations call for generic functions that accept an arbitrary number of parameters or generic classes that can be instantiated with any number of type arguments. The need for variadic templates in C++ is pronounced. The above code compiles and executes correctly with our extensions. Tuple types [16] Todd L. Writing modern C++ code: how C++ has evolved over the years. C++11 FAQ. Morgan Stanley | Columbia University | Texas A&M University home | C++ | FAQ | technical FAQ | C++11 FAQ | publications | TC++PL | Tour++ | Programming | D&E | bio | interviews | applications | glossary | compilers Modified September 5, 2014 This document is written by and maintained by Bjarne Stroustrup.

C++11 FAQ

ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP. Cplusplus/draft. Get Started! : Standard C++ Managed, Native, and COM Interop Team - Download: PInvoke Interop Assistant. CodeSynthesis XSD 4.0.0 Released, Adds Support for C++11. Boost C++ Libraries. "clang" C Language Family Frontend for LLVM. C++ faq - The Definitive C++ Book Guide and List. Videos about the new stuff in Visual Studio 2013, C++ and from Research - Secret Microsoft Communications. Welcome to the Jungle.

In the twilight of Moore’s Law, the transitions to multicore processors, GPU computing, and HaaS cloud computing are not separate trends, but aspects of a single trend – mainstream computers from desktops to ‘smartphones’ are being permanently transformed into heterogeneous supercomputer clusters. Henceforth, a single compute-intensive application will need to harness different kinds of cores, in immense numbers, to get its job done. The free lunch is over. Now welcome to the hardware jungle. From 1975 to 2005, our industry accomplished a phenomenal mission: In 30 years, we put a personal computer on every desk, in every home, and in every pocket. In 2005, however, mainstream computing hit a wall. To write our code if we want our applications to continue exploiting Moore’s transistor dividend. This time it took us just sixyears to deliver mainstream parallel computing in all popular form factors. That was the first act. Overview: Trifecta 1. 2. 3. This article will develop four key points:

Cinder. Cinder provides a powerful, intuitive toolbox for programming graphics, audio, video, networking, image processing and computational geometry.


Cinder is cross-platform, and in general the exact same code works under Mac OS X, Windows and a growing list of other platforms — most recently the iPhone and iPad. Cinder is designed to take advantage of platforms’ native capabilities whenever it’s possible, and relies on a minimum of 3rd party libraries. This makes for much lighter, faster applications, and means Cinder apps get free performance, security and capability upgrades whenever the operating system does. We also have worked hard to create a library that feels familiar and intuitive to C++ programmers, building on the idioms and techniques the C++ community has developed over its long history. Cinder’s modern internal memory management virtually eliminates leaks, not only of memory but also of resources like OpenGL textures.

Writing Lock-Free Code: A Corrected Queue. Waiting for One-Off Events with Futures.