News

Should I pay attention to the warning that I’m std::move‘ing from a trivial type? Part 2--Raymond Ch

The series continue.

Should I pay attention to the warning that I’m std::move‘ing from a trivial type? Part 2

by Raymond Chen

From the article:

Last time, we looked at motivations for std::move‘ing from a trivial type. Our investigation looked at the problem through the eyes of the object moved from, but there’s another way to look at the problem, and that’s from the point of view of the object being moved to...

Diversity and Inclusion at CppCon 2022 -- Daisy Hollman

hollman.pngThings to look forward to at CppCon 2022 in September!

Diversity and Inclusion at CppCon 2022

by Daisy Hollman

From the article:

One of the fundamental missions of the Standard C++ Foundation is to “support the C++ software developer community.” Support starts with ensuring that everyone feels welcome in our community, and as the leadership of the largest community gathering of the year, we take the opportunity to build a more diverse and inclusive community very seriously and try to expand it every year. Here are the new, expanded, and continuing initiatives currently planned, aimed at making everyone feel welcome at CppCon 2022...

Writing a Network Client with POCO -- Richard Thomson

Utah C++ Programmers has released a new video:

Writing a Network Client with POCO

by Richard Thomson

From the video description:

Networking is often a core requirement for modern applications, but the standard C++ library doesn't yet include any networking support. The Boost libraries have had networking components in the ASIO library, but it looks complicated and filled with details. What if we aren't experts in networking but we need to have networking to support a feature in our application, what options are available to us?

POCO began as a library of POrtable COmponents, so it covers more than just networking. The networking portion of POCO includes:
- stream, datagram, multicast, server, Unix domain and raw sockets
- multithreaded TCP server framework
- reactor server framework
- HTTP(S) client and server framework
- HTTP Basic and Digest authentication
- NTLM authentication
- JSON Web Token support
- C++ server page compiler
- FTP client
- clients for the email protocols SMTP and POP3
- URI and UUID handling
- HTML forms processing
- HTML template compiler
- MIME multipart messages
- SSL/TLS support based on OpenSSL
- WebSocket client and server

This month, Richard Thomson will give us an introduction to POCO networking components centered around writing a network client to talk to an NNTP server. We'll look at the main abstractions provided by POCO and how those are used to build a network client to an NNTP server. NNTP (Network News Transfer Protocol) is a stateful network protocol for reading articles from newsgroups, generally referred to as "usenet". Unlike single hosted forums or mailing lists, usenet is a distributed system with no central authority, providing redundancy and resiliency from single point failures (like the host of your favorite forum suddenly deciding they don't want to pay server costs anymore and deleting the whole thing).

https://www.youtube.com/watch?v=rRR9RTUEn4k

Dawn of a new C++ cycle--Jens Weller

What do you think?

Dawn of a new C++ cycle

by Jens Weller

From the article:

It was 10 years ago when one would realize that a new era for C++ was in its beginning: C++11 was a fundamental change. Many things that one wanted to have in the language or standard library suddenly became available, if one had the right compiler in the newest version. And in this time 10 years ago, the first C++now happend in Aspen, as it has again in the beginning of May...

MSVC’s STL Completes /std:c++20--Casey Carter

All the reasons to try it!

MSVC’s STL Completes /std:c++20

by Casey Carter

From the article:

We are happy to announce that the final C++20 Standard Library features are now stabilized and available in /std:c++20 mode in both Visual Studio 2022 version 17.2 and Visual Studio 2019 version 16.11.14. This notably includes several proposals approved as Defect Reports (DRs) by the C++ Standard Committee against the C++20 Standard Library that made extensive design changes to <format> and <ranges> as recently as October 2021. You can now use the complete list of C++20 features in production in a binary compatible way with other supported language version modes...

Speeding up Pattern Searches with Boyer-Moore Algorithm from C++17--Bartlomiej Filipek

Interested?

Speeding up Pattern Searches with Boyer-Moore Algorithm from C++17

by Bartlomiej Filipek

From the article:

With C++17, you can now use more sophisticated algorithms for pattern searches! You’ll have more control and a promising performance boost for many use cases. This article shows primary usage and runs a benchmark comparing the new techniques.

May 2022 Updates: added notes about C++20 and constexpr algorithms, updated the benchmark and compared against std::ranges::search and custom strchr versions.

Writing a Network Client with Facebook's Wangle is a Fail -- Richard Thomson

Utah C++ Programmers has released a new video.

Writing a Network Client with Facebook's Wangle is a Fail

by Richard Thomson

From the video description:

Networking is often a core requirement for modern applications, but the standard C++ library doesn't yet include any networking support. The Boost libraries have had networking components in the ASIO library, but it looks complicated and filled with details. What if we aren't experts in networking but we need to have networking to support a feature in our application, what options are available to us?

Wangle claims to be "a library that makes it easy to build protocols, application clients, and application servers." Wangle is an open source library created at Facebook and depends on the folly and fizz libraries, also from Facebook. Folly is what you might call a "support library" containing various utility components that fill gaps in the standard C++ library, or provide components similar to those in the standard library that are optimized for particular use cases. Fizz is a TLS 1.2 (transport layer security) implementation from Facebook.

This month, Richard Thomson will give us an introduction to Wangle centered around writing a network client to talk to an NNTP server. We'll look at the main abstractions provided by Wangle and how those are used to build a network client to an NNTP server. NNTP (Network News Transfer Protocol) is a stateful network protocol for reading articles from newsgroups, generally referred to as "usenet". Unlike single hosted forums or mailing lists, usenet is a distributed system with no central authority, providing redundancy and resiliency from single point failures (like the host of your favorite forum suddenly deciding they don't want to pay server costs anymore and deleting the whole thing).

https://www.youtube.com/watch?v=3_M9rV0EuZ8