||Umbrella (can be abbreviated as U) is a statically typed, multi-paradigm, compiled, general-purpose programming language,
supporting object-oriented, imperative, and functional programming styles.
It is currently under heavy development and expected to be released in early 2014.
Umbrella provides more than 40 operators, covering basic arithmetic, bit manipulation, indirection, comparisons, logical operations and others.
Almost all operators can be overloaded for user-defined types, Overloading an operator does not change the precedence of calculations involving the operator,
nor does it change the number of operands that the operator uses.
Umbrella templates open the doors to generic programming. The language supports both function and class templates.
Templates may be parameterized by types, compile-time constants such as numbers and strings, and other templates.
Similar to C++, templates are instantiated by substitution of specific arguments for a template's parameters to generate a concrete function or class instance.
Umbrella classes provide the four features commonly present in object-oriented programming languages: abstraction, encapsulation, inheritance, and polymorphism.
Similar to C++, destructors are deterministic, which provides support for the Resource Allocation is Initialization concept.