Ultimate++

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Ultimate++
Developer(s) Ultimate++ team [1]
Initial release 2004
Stable release 5485 / November 8, 2012;
16 months ago
 (2012-11-08)
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.

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