Lightweight C++ is a programming language that looks like C++ (a lightweight C++ dialect) and is directly translated to readable C by the lwc preprocessor.
Lightweight C++ is more "K&R" and, well, more lightweight. Important thing about lightweight C++ is that by studying the generated C code it is easy to understand how OOP features are implemented and what is the cost of everything.
Adding new features and extensions is also very easy (much easier than adding new C++ extensions to gcc at least), and this is one of lwc goals: To keep evolving.
Here are some key features of "Lightweight Cplusplus":
· function overloading,
· member functions,
· virtual functions (polymorphism),
· multiple inheritance,
· virtual inheritance and pure virtual functions,
· constructors, destructors,
· new and delete,
· default function arguments,
· simple exceptions (no auto destruction of locals)
· and a mechanism of simplistic templates (implemented as high-level multi-line macros).
· operator overloading (works with ptrs when it can)
What's New in This Release:
· Changed the generated code for the gcc cleanup attribute so that if a constructor throws, the destructor is not invoked. As in the simple case where we don't have the cleanup attribute and like C++.