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.
![]() | |
Developer(s) | U++ team[1] |
---|---|
Initial release | 2004 |
Stable release | 2022.3
/ 29 December 2022[2] |
Preview release | 2023.1
/ May 2, 2023 |
Repository | |
Written in | C++ |
Operating system | Unix/Linux/FreeBSD (X11), Windows, Windows CE, MacOS |
Type | Application framework |
License | BSD license |
Website | ultimatepp |
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:
- Openwind[9] - an open-source wind farm design software
- UppCAD[10] - a multipurpose CAD system[11]
See also
References
- "U++ team".
- "Release history".
- http://www.programmez.com/magazine_articles.php?id_article=981 Programmez! issue 104
- http://www.programmez.com/magazine_articles.php?id_article=1150 Programmez! issue 114
- Gouvernelle, Vincent (2009). C++: L'essentiel du code et des commandes. Pearson Education France. ISBN 978-2-7440-2281-4.
- Getting started with Ultimate++ CodeProject article
- U++ Overview
- Chameleon examples
- "Building OpenWind".
- "Ultimate++ Forums - UppCAD". Retrieved 2020-10-18.
- "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.