background preloader

C++

Facebook Twitter

Chapter 1: Introducing Hilo - Vimperator. The first Hilo sample application—the Hilo Browser—implements a touch-enabled user interface for browsing and selecting photos and images.

Chapter 1: Introducing Hilo - Vimperator

You can download the code for the Hilo Browser application from the MSDN Code Gallery. This article introduces you to the Hilo Browser application and to developing applications for Windows 7 by describing some of the tools and APIs that you can use. In subsequent articles, we’ll drill into the details of the Hilo Browser application. The Hilo applications allow you to select, annotate and share collections of photos in a natural fashion. To do this, Hilo takes advantage of some of the key features in Windows 7: Libraries, Touch, Windows Ribbon, Direct2D, and Windows Animation. Tablet computers enable you to interact with applications through a touch screen and to input data through a stylus. Controlling core files (Linux) - Vimperator. Core files get created when a program misbehaves due to a bug, or a violation of the cpu or memory protection mechanisms.

Controlling core files (Linux) - Vimperator

The operating system kills the program and creates the core file. If you don't want core files at all, set "ulimit -c 0" in your startup files. That's the default on many systems; in /etc/profile you may find. Simpler Multithreading in C++0x - Vimperator. Protecting Data During Initialization If your data only needs protecting during its initialization, using a mutex is not the answer.

Simpler Multithreading in C++0x - Vimperator

Doing so only leads to unnecessary synchronization after initialization is complete. The C++0x standard provides several ways of dealing with this. First, suppose your constructor is declared with the new constexpr keyword and satisfies the requirements for constant initialization. In this case, an object of static storage duration, initialized with that constructor, is guaranteed to be initialized before any code is run as part of the static initialization phase. C++ map iteration with deletion - Stack Overflow - Vimperator. C++ - boost.bimap alternative in c++0x - Stack Overflow - Vimperator. Fast map implementation in C++ - Stack Overflow - Vimperator. C++0x FAQ - Vimperator. Morgan Stanley | Columbia University | Texas A&M University.

C++0x FAQ - Vimperator

C++0xCompilerSupport - Stdcxx Wiki - Vimperator. Simpler Multithreading in C++0x - Vimperator. Ne major new feature in the C++0x standard is multi-threading support.

Simpler Multithreading in C++0x - Vimperator

Prior to C++0x, any multi-threading support in your C++ compiler has been provided as an extension to the C++ standard, which has meant that the details of that support varies between compilers and platforms. However, with the new standard, all compilers will have to conform to the same memory model and provide the same facilities for multi-threading (though implementors are still free to provide additional extensions). What does this mean for you? It means you'll be able to port multi-threaded code between compilers and platforms with much reduced cost. This will also reduce the number of different APIs and syntaxes you’ll have to know when writing for multiple platforms.

The core of the new thread library is the std::thread class, which manages a thread of execution, so let's start by looking at that. Launching Threads You start a new thread by constructing an instance of std::thread with a function. Grok The New Features in Standard C++ - Languages - Microsoft DevSource - Vimperator. The definition of C++ isn't standing still.

Grok The New Features in Standard C++ - Languages - Microsoft DevSource - Vimperator

Discover how the standard is changing—and what effect it's going to have on your code. Believe it or not, the current C++ standard (formally known as C++98) is already six years old. Considering the time that has elapsed since its finalization in 1996, it is even older. In the meantime, the software world has changed considerably: XML, merely an experimental language in the mid 1990s, has turned into a de-facto standard; projects that combine multiple programming languages are now commonplace; and pure object-oriented programming has lost its luster in favor of other paradigms. C++0x feature support in GCC 4.5 - Vimperator. Introduction The GNU Compiler Collection (GCC) is the C++ compiler to the vast majority of us and has taken the lead in supporting features from the upcoming C++0x standard (see Resources for links to more information).

C++0x feature support in GCC 4.5 - Vimperator

This article focuses on a subset of several C++0x features that GCC version 4.5 supports, including static assertions, initializer lists, type narrowing, newer semantics of the auto keyword, lambda functions, and variadic templates. Some of these features—like static assertions—first made their appearance in GCC version 4.3, while lambda functions first appeared with the 4.5 release. If you intend to be one of the early adopters of C++0x, consider getting a copy of the draft standard and download GCC 4.5 (see Resources). C++0x - Wikipedia, the free encyclopedia - Vimperator. C++11 (formerly known as C++0x) is the most recent version of the standard of the C++ programming language.

C++0x - Wikipedia, the free encyclopedia - Vimperator

It was approved by ISO on 12 August 2011, replacing C++03.[1] The name follows the tradition of naming language versions by the year of the specification's publication. Work is currently under way on the C++14 and C++17 standards.[6] Changes from the previous version of the standard[edit] The modifications for C++ involve both the core language and the standard library. In the development of every utility of the 2011 standard, the committee has applied some directives: Attention to beginners is considered important, because they will always compose the majority of computer programmers, and because many beginners would not intend to extend their knowledge of C++, limiting themselves to operate in the aspects of the language in which they are specialized.[1]

Channel 9 - Vimperator. The Linux GCC HOWTO. Problem: POSIX systems check for signals a bit more often than some older unices.

The Linux GCC HOWTO

Linux may execute signal handlers --- asynchronously (at a timer tick) on return from any system call during the execution of the following system calls: select(), pause(), connect(), accept(), read() on terminals, sockets, pipes or files in /proc, write() on terminals, sockets, pipes or the line printer, open() on FIFOs, PTYs or serial lines, ioctl() on terminals, fcntl() with command F_SETLKW, wait4(), syslog(), any TCP or NFS operations. For other operating systems you may have to include the system calls creat(), close(), getmsg(), putmsg(), msgrcv(), msgsnd(), recv(), send(), wait(), waitpid(), wait3(), tcdrain(), sigpause(), semop() to this list. If a signal (that the program has installed a handler for) occurs during a system call, the handler is called.

You may choose between two fixes. (1) For every signal handler that you install, add SA_RESTART to the sigaction flags. To becomes. Shared Libraries. Shared libraries are libraries that are loaded by programs when they start.

Shared Libraries

When a shared library is installed properly, all programs that start afterwards automatically use the new shared library. It's actually much more flexible and sophisticated than this, because the approach used by Linux permits you to: update libraries and still support programs that want to use older, non-backward-compatible versions of those libraries;override specific libraries or even specific functions in a library when executing a particular program.do all this while programs are running using existing libraries. 3.1. Conventions For shared libraries to support all of these desired properties, a number of conventions and guidelines must be followed. Real-time systems development. Higher Half Kernel. It is traditional and generally good to have your kernel mapped in every user process.

Linux, for instance (and many other Unices) reside at the virtual addresses 0xC0000000 - 0xFFFFFFFF of every address space, leaving the range 0x00000000 - 0xBFFFFFFF for user code, data, stacks, libraries, etc. Kernels that have such design are said to be "in the higher half" by opposition to kernels that use lowest virtual addresses for themselves, and leave higher addresses for the applications. Advantages of a higher half kernel are: It's easier to set up VM86 processes since the region below 1MB is userspace. More generically, user applications are not dependent on how much memory is kernel space (Your application can be linked to 0x400000 regardless of whether kernel is at 0xC0000000, 0x80000000 or 0xE0000000 ...), which makes ABI's nicer. Initialization To setup a higher half kernel, you have to map your kernel to the appropriate virtual address.

Custom Bootloader. Creating a 64-bit kernel. Prerequisites Make sure that you have the following done before proceeding: Have built a cross-compiler for the x86_64-elf target. Read up on long mode and how to initialize/use it. Know what a higher-half kernel is and how it works. Dynamic Initialization and Destruction with Concurrency. Lawrence Crowl, crowl@google.com, Lawrence@Crowl.org This document is a revision of N2382 = 07-0242 - 2007-08-05. IntroductionFunction-Local Initialization Implementation 6.7 Declaration statement [stmt.dcl] 302 Moved Temporarily. 302 Moved Temporarily. 302 Moved Temporarily. Distcc: a fast, free distributed C/C++ compiler. NEWS: distcc 3.1 released! Distcc release 3.1 is now available at Downloads. See NEWS for details. Overview distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a network. distcc should always generate the same results as a local build, is simple to install and use, and is usually much faster than a local compile. distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed.

"Just wanted to drop you a line to say that we are now using distcc at work and it is excellent. GotW.ca Home Page. Guide — C/C++ Development with Eclipse.

Boost