Ultimate++

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Ultimate++
Developer(s) Ultimate++ team [1]
Initial release 2004
Stable release 5431 / October 22, 2012;
6 months ago
 (2012-10-22)
Written in C++
Operating system Unix/Linux/BSD (X11), Windows
Type Widget toolkit/IDE
License BSD
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.

Contents

Features [edit]

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 {
    Button button;
 
    void Click() {
        if(PromptYesNo("Button was clicked. Do you want to quit?"))
            Break();
        }
    }
 
    typedef MyApp CLASSNAME;
 
public:
    MyApp() {
        Title("Hello world");
        button.SetLabel("Hello world!");
        button <<= THISBACK(Click);
        Add(button.HSizePos(100, 100).VSizePos(100, 100));
    }
};
 
GUI_APP_MAIN
{
    MyApp().Run();
}

Criticism [edit]

  • 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 a 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]

References [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]