opC++ Code Generation
C++ takes a no nonsense approach to programming that leaves you with fast code but few features. The emphasis in current C++ design is on compile-time features like templates and metaprogramming -- with seemingly no useful application outside library design.
However, C++ is lacking any emphasis on useful language features for normal classes - what features you need will have to be hacked in with #defines or worse. Yet many useful features in more dynamic languages should map very well to a compile-time language - if only they could be added selectively...
With opC++, you can have the best of both worlds - generate code
features based on your class definitions selectively and automatically.
Add features that seamlessly blend into your code while using your same C++ development tools.
Use your existing C++ compiler together with opC++ to generate featured, efficient code!
Complements Existing C++ Code
opC++ complements your existing C++ code. Your generated code will remain usable and debuggable even on machines that don't have the opC++ compiler installed. You can use opC++ to add special code generation for certain code files, or whole programs.
The opC++ Compiler comes with a command-line interface on all platforms -- and with automatic dependency tracking, integrating it with your tool chains is a snap.
There's no need to worry about weird impenetrable generated code - debuggers will step into your dialects, and show you exactly what code was generated, and why.
opC++ also comes with a powerful new preprocessor. It can be used to write fully debuggable macros for code generation.
A New Preprocessor
Write fully debuggable macros via the new opmacro syntax!
These macros may contain comments, you can even use one opmacro to build another opmacro!
Expansion of opmacros is explicitly done with the 'expand' keyword.
Visual Studio Addin
The Visual Studio addin allows you to control the compiler's code generation options for your projects.
Easily control the compiler and Visual Studio addin by manipulating property grid-style global and project options.
Options can be configured on a per-project, per-configuration and per-platform basis.