From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) Ultimate++ team [1]
Initial release 2004; 12 years ago (2004)
Stable release
2015.2 (rev. 9251) / December 1, 2015;
10 months ago
Repository sourceforge.net/projects/upp/files/upp/
Development status Active
Written in C++
Operating system Unix/Linux/FreeBSD (X11), Windows, Windows CE
Type Application framework
License BSD license
Website ultimatepp.org

Ultimate++ [2][3][4][5] is a C++ cross-platform development framework which aims to reduce the code complexity of typical desktop applications by extensively exploiting C++ features.


Hello World[edit]

The following example creates a U++ application with "Hello world!" button:

#include <CtrlLib/CtrlLib.h>

using namespace Upp;

class MyApp : public TopWindow {
    typedef MyApp CLASSNAME;

    MyApp() {
        Title("Hello world");
        button.SetLabel("Hello world!");
        button.WhenAction = THISBACK(Click);
        Add(button.HSizePos(100, 100).VSizePos(100, 100));
    void Click() {
        if(PromptYesNo("Button was clicked. Do you want to quit?"))

    Button button;



  • it doesn't use the Standard Template Library (STL)
  • NTL template system semantics are difficult to understand at first since assignment operator in reality gets overloaded to perform a move [9] operation and not a copy. This is done for performance reasons and to overcome some STL limitations, but new C++0x standard should enable even STL users to perform move operations with classes by introducing rvalue-references.
  • since many C++ operators are overloaded to perform common tasks such as assigning callbacks, understanding the code can be difficult at first
  • there are no layouts handlers for widgets, although Ultimate++ has a system of logic coordinates to maintain relative coordinates of objects when resizing windows. Having three buttons properly aligned and resized on a row without layout managers still remains difficult, though.
  • Ultimate++ IDE support for languages other than C++ is very limited. It provides some syntax coloring for SQL and little else.

Software built on Ultimate++[edit]

See also[edit]


  1. ^ "Ultimate++ team". 
  2. ^ http://www.programmez.com/magazine_articles.php?id_article=981 Programmez! issue 104
  3. ^ http://www.programmez.com/magazine_articles.php?id_article=1150 Programmez! issue 114
  4. ^ Gouvernelle, Vincent (2009). C++: L'essentiel du code et des commandes. Pearson Education France. ISBN 2-7440-2281-0. 
  5. ^ Getting started with Ultimate++ CodeProject article
  6. ^ U++ Overview
  7. ^ Chameleon examples
  8. ^ Guide to Ultimate++ containers
  9. ^ Pick transfer semantics

External links[edit]