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 ">"
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