> C+- (pronounced "C more or less") > > Unlike C++, C+- is a subject oriented language. Each C+- class instance, > known as a subject, holds hidden members, known as prejudices or > undeclared preferences, which are impervious to outside messages, as well > as public members known as boasts or claims. The following C operators > are overridden as shown: > > > better than > < worse than > >> much better than > << forget it > ! not on your life > == comparable, other things being equal > > C+- is a strongly typed language based on stereotyping and self-righteous > logic. The Boolean variables TRUE and FALSE (known as constants in less > realistic languages) are supplemented with CREDIBLE and DUBIOUS, which > are fuzzier than Zadeh's traditional fuzzy categories. All Booleans can > be declared with the modifiers strong and weak. Weak implication is said > to "preserve deniability" and was added at the request of the D.O.D. to > ensure compatability with future versions of Ada. Well-formed falsehoods > (WFFs) are assignment-compatible with all booleans. What-if and why-not > interactions are aided by the special conditional evenifnot X then Y. > > C+- supports information hiding and, among friend classes only, rumor > sharing. Borrowing from the Eiffel lexicon, non-friend classes can be > killed by arranging contracts. Note that friendships are intransitive, > volatile, and non-Abelian. > > Single and multiple inheritance mechanisms are implemented with random > mutations. Disinheritance rules are covered by a complex probate > protocol. In addition to base, derived, virtual, and abstract classes, > C+- supports gut classes. In certain locales, polygamous derivations and > bastard classes are permitted. Elsewhere, loose coupling between classes > is illegal, so the marriage and divorce operators may be needed: > > marriage (MParent1, FParent1); > //child classes can now be derived > sclass MySclass: public MParent1, FParent1 > { // define MySclass > > sclass YourSclass: public MParent1, FParent2 > // illegitimate > > divorce (MParent1, FParent2); > > marriage (MParent1, FParent2); > sclass YourSclass: public MParent1, FParent2 > { // OK now > > Operator precedence rules can be suspended with the directive #pragma > dwim, known as the "Do what I mean" pragma. ANSIfication will be firmly > resisted. C+-'s slogan is "Be Your Own Standard."