Properly spelled C(). An interesting C++ "dialect".
And guess what? You probably already have a compiler for it.
What is it? It is, in many ways, the opposite of EmbeddedCeePlusPlus. It's essentially CeePlusPlus, minus the following things:
- The "virtual" keyword...in other words, C() lacks subtype polymorphism, and thus doesn't qualify as an OO language (for the same reason that HaskellLanguage and MlLanguage--excluding O'Caml--aren't OO languages). An exception might be made for the exception hierarchy, as there is no template version of "throw". :) Use of libraries which contain non PlainOldData classes is OK; but creating your own is not.
- Inheritance may be used, but only for reuse and not for polymorphism. Casting from derived classes to base classes is generally discouraged (consider PrivateInheritance so the compiler disallows such) as it results in ObjectSlicing in such an environment. Multiple inheritance is OK; virtual base classes are not.
- Use of C style casts and reinterpret_cast are discouraged (though they are generally discouraged in C++ as well).
- Likewise with "native" arrays and CharStars, other than literals for initialization purposes (The STL vector and string classes are preferred). PointerArithmetic is also obviously frowned upon.
- Templates are highly encouraged--with subtype polymorphism being deleted, generic polymorphism is used to take its place. Use of things like StandardTemplateLibrary, BoostLibraries, etc. are also highly encouraged.
- Feel free to link in your favorite GarbageCollection library.
Note. This isn't being advocated as a
replacement for C++, instead it is suggested as an interesting functional dialect of C/C++.
Don't look for references on google (yet), I just made this up. :)
CategoryProgrammingLanguage CategoryCee CategoryCpp