Virjacode


Full History of Proposals to C++ Standard

A full collection of all posts to comp.std.c++ from 1990, Google Groups from 2012, and the ISOCPP mailing list from 2019:

        http://virjacode.com/cxxproposals


C++ Papers

Interceptor Functions
Act as a 'man in the middle' between caller and callee, preserving stack and registers

Achieve NRVO with std::factory and std::after_factory
Two new library functions to create and modify prvalues in order to achieve Named Return Value Optimisation (NRVO)

PRvalue Parameters
Allow a function to accept a PRvalue as an argument

std::elide
Emplace a unmovable-and-uncopiable prvalue into an std::optional

Retrieval of Exception Information
Retrieve the typeinfo from an exception_ptr inside a catch(...) block

std::unaligned<T> and typedef<packed>
Standardise accessing unaligned data, as well as 'packed' struct's

Continuity Methods
Derived class automatically calls methods belonging to base classes

RTTI for current exception
Inside a catch block, we should have access to the RTTI of the thrown object

No Re-entry
Language support to prevent re-entry of event handlers in event-driven systems

Chimeric Pointer
Instead of using two pointers to two base classes, use one chimeric pointer

Interfaces
Treat an object of a class as though it had a different interface (but same implementation)

Named Return Value Optimisation
Eliding a move/copy operation with Named Return Value Optimisation

Overload operator->
Allow overloading of operator-> (e.g. for implementing variant_common_base)

Variant Common Base
Treat a variant object as the common base of all the types

Exhaustive Dereferencing
Keep dereferencing until there's nothing left to dereference


Projects

Dynamo
A network analysis tool

Beef Up
A small program for adding lots of cool stuff to Ubuntu Linux

Memory Milker
A small library written in C for making the most of a restricted amount of memory

How To's

Set Linux Internet Connection
Manually set your internet connection at the command line in Linux

Rip Flash Video from Firefox Cache
Use the commandline to rip flash videos from your Firefox browser's cache folder

Various Algorithms

Example of a C++20 coroutine
Now we can write functions in C++ that can be paused and then resumed later

Simple Dictionary Generator
Simple, minimalistic C code for a password dictionary generator

Uppercase-Lowercase Combinator
Input = 1dog2
Output = 1dog2 1doG2 1dOg2 1dOG2 1Dog2 1DoG2 1DOg2 1DOG2

Make source code HTML-compatible
Replace special HTML characters such as ">" with "&gt;"

Tutorials

C programming : Integer Promotion
What happens when you do (short unsigned) + (long signed)?

C Programming Language Portability Stuff

Convert local charset to ASCII
Convert a local charset string to ASCII, perhaps for passing an ASCII string to a hash algorithm

Memset with an unsigned char value
Don't suppose you noticed memset takes an "int" instead of an "unsigned char"?

About Virjacode