The long wait is over: Wt 4 has been released!
Download the source (wt-4.0.0.tar.gz) here and read its release notes for more information about what Wt 4 brings.
Wt 4 is Wt’s big update to C++11 and a more modern C++ style along with it.
You may have also noticed that the website is looking a bit different. It was about time that the website got a refresh, so we made a new one to coincide with the Wt 4 launch. We hope you like it!
Notable changes in Wt 4 are:
Owning raw pointers have been replaced by smart pointers. Notably,
WContainerWidget::addWidget(WWidget*) have been replaced by
WContainerWidget::addWidget(std::unique_ptr<WWidget>). Also, some objects that had a single owner before, like
WValidator, are now shared.
Enums were replaced by enum classes
Wt 4 relies less on Boost, preferring the standard library where possible. If you build Wt with standalone Asio, then the header files don’t include any Boost headers anymore. This has significantly reduced the size of our Windows installers, and should considerably speed up compilation times.
Boost.Signals2 has been replaced by a new implementation that should offer better performance and easier debugging due to shorter, more understandable stack traces. Also, you don’t need to
std::bind away extra arguments when using lambda functions now.
Boost.Date_Time has been replaced by Howard Hinnant’s
Boost.Any has been replaced by
Wt::cpp17::any. The implementation can be switched at compile time between
std::experimental::any, or (by default) an included implementation that implements the small object optimization.
The use of Wt header files without .h has been deprecated, because this often confused IDEs and yielded no real benefit.
There’s a new default implementation for
Everything that was marked as deprecated in Wt 3 has been removed.
We’ve also added some more features since the release of Wt 3.3.8:
A Microsoft SQL Server backend for Wt::Dbo
Support for listening on multiple interfaces using
--https-listen for wthttp.
Windows builds for Visual Studio 2015 and 2017 can be downloaded from the releases page on GitHub.
int i = 42;
server->post(sessionId, std::bind(foo, i));
int i = 42;