Ultimate++

Ultimate++,[3][4][5] mostly known as U++ or Upp - is a C++ rapid application development framework that aims to reduce the code complexity of typical desktop applications by extensively exploiting C++ features. Programs created with it can work on multiple operating systems and hardware architectures without the need to write platform-specific code.

U++
Developer(s)U++ team[1]
Initial release2004 (2004)
Stable release
2022.3 / 29 December 2022 (2022-12-29)[2]
Preview release
2023.1 / May 2, 2023 (2023-05-02)
Repository
Written inC++
Operating systemUnix/Linux/FreeBSD (X11), Windows, Windows CE, MacOS
TypeApplication framework
LicenseBSD license
Websiteultimatepp.org

It possesses an integrated development environment called TheIDE[6] that is designed to handle all library features.

Features

The major U++ features are:

  • Supports multiple platforms, including Windows, Linux, macOS, and various Unix-like operating systems.
  • Supports multiple compilers, including GCC, Clang, and Microsoft Visual C++.
  • Modern C++ support. Compatible with C++20
  • Includes an IDE with a layout designer.
  • Uses heavily RAII and auto pointers-like mechanisms to avoid manual memory management and even to limit the use of pointers in the code [7]
  • Can emulate[8] native widgets look and feel. On X11 systems, Ultimate++ supports GTK+ widgets look and feel.
  • The standard distribution comes with Ultimate++ sources included, even the IDE ones.
  • Uses NTL as a template system instead of STL.
  • Built-in support for databases, with libraries for connecting to various database systems.
  • Many technologies like Topic++ (Documents editor), Assist++ (Code completion, analyzer), Icon Designer, and more are built into the U++.
  • Designed for high-performance application use cases with a low memory footprint and efficient use of system resources.
  • Retains backward compatibility, allowing developers to upgrade to new versions of the framework without breaking existing code.
  • Provides full support for Unicode, allowing developers to create applications that can handle different languages and character sets.
  • Easy to integrate with other libraries, including third-party libraries and legacy code.

Hello World

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

#include <CtrlLib/CtrlLib.h>

using namespace Upp;

class MyApp : public TopWindow 
{
public:
    MyApp() 
    {
        Title("Hello world");
        button.SetLabel("Hello World!");
        button << [=] {
            if (PromptYesNo("Button was clicked. Do you want to quit?"))
                Break();
        };
        Add(button.HSizePos(100, 100).VSizePos(100, 100));
    }
    
private:
    Button button;
};

GUI_APP_MAIN
{
    MyApp().Run();
}

Software built on Ultimate++

Example applications using Ultimate++ are:

See also

References

  1. "U++ team".
  2. "Release history".
  3. http://www.programmez.com/magazine_articles.php?id_article=981 Programmez! issue 104
  4. http://www.programmez.com/magazine_articles.php?id_article=1150 Programmez! issue 114
  5. Gouvernelle, Vincent (2009). C++: L'essentiel du code et des commandes. Pearson Education France. ISBN 978-2-7440-2281-4.
  6. Getting started with Ultimate++ CodeProject article
  7. U++ Overview
  8. Chameleon examples
  9. "Building OpenWind".
  10. "Ultimate++ Forums - UppCAD". Retrieved 2020-10-18.
  11. "UppCAD". Retrieved 2020-10-18.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.