What we're about

Join us to learn more about the latest developments in C and C++ programming. The ISO standards body has ratified C++20, the latest version of the standard, making this the best version of C++ so far. The C++ programming language supports a wide variety of programming styles, from procedural to object-oriented to functional to generic. If you haven't touched base with C++ lately, come join us to experience the joy of using modern C++!

C++ is the place to be when you care about power consumption, efficiency, performance, deterministic resource management and compactness of code. You can have all of this and still retain expressive designs and suitable abstractions.

Virtual meeting recordings can be found on our YouTube channel Utah Cpp Programmers (https://tinyurl.com/utahcpp-youtube).

We have a team on http://exercism.io for discussing and improving the way we write C++ code. The team name is utahcpp (http://exercism.io/teams/utahcpp).

• Past topics (https://utahcpp.wordpress.com/past-meeting-topics/)

• Possible future topics (https://utahcpp.wordpress.com/future-meeting-topics/)

If you have a specific topic you'd like see, drop us a line (http://user.xmission.com/~legalize/mail.html).

Upcoming events (4+)

TCP/IP Networking with Boost.Asio

Link visible for attendees

Boost.Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.

This month, Richard Thomson will continue our look at Boost.Asio with a look at TCP/IP networking. We'll look at how to implement an NNTP (Network News Transport Protocol) client using Boost.Asio. NNTP is a line-oriented protocol for reading usenet news articles. This will give us insight into all the typical issues involved in a TCP/IP networking application:

  • How do we resolve a host name into an IP address?
  • How do we establish a long-lived connection to an NNTP server?
  • How do we handle the arbitrarily large amounts of data from an NNTP server that arrives asynchronously?
  • How do we coordinate user input with NNTP I/O?
  • How do we handle unexpected network errors?

This will be an online meeting, so drinks and snacks are on you!

Join the meeting here: https://meet.xmission.com/Utah-Cpp-Programmers

Watch previous topics on the Utah C++ Programmers YouTube channel:
https://www.youtube.com/@UtahCppProgrammers

Future topics: https://utahcpp.wordpress.com/future-meeting-topics/
Past topics: https://utahcpp.wordpress.com/past-meeting-topics/

Basic HTTP and WebSocket Programming with Boost.Beast

Link visible for attendees

Boost.Beast is a C++ header-only library serving as a foundation for writing interoperable networking libraries by providing low-level HTTP/1, WebSocket, and networking protocol vocabulary types and algorithms using the consistent asynchronous model of Boost.Asio.

This month, Richard Thomson will give us an introduction to Beast and the facilities it provides for HTTP and WebSocket applications. We will look at an example of implementing a REST API for a simple CRUD (Create, Read, Update, Delete) style database. We will revisit the comic book database example we have used in previous REST API presentations.

This will be an online meeting, so drinks and snacks are on you!

Join the meeting here: https://meet.xmission.com/Utah-Cpp-Programmers

Watch previous topics on the Utah C++ Programmers YouTube channel:
https://www.youtube.com/@UtahCppProgrammers

Future topics: https://utahcpp.wordpress.com/future-meeting-topics/
Past topics: https://utahcpp.wordpress.com/past-meeting-topics/

C++ Promises/A+ library in the Javascript style

Link visible for attendees

Over the past few months, we've looked at asynchronous I/O and network programming using Boost.Asio and Boost.Beast. Those libraries connect to your application through the use of callbacks. When orchestrating a sequence of asynchronous operations, it is up to the application to ensure that the callbacks are invoked in the proper sequence.

This "callback hell" problem has long been recognized in the JavaScript world, as all I/O operations in JavaScript (timers or XML HTTP Requests) are asynchronous. In the JavaScript world this lead to promise oriented APIs that allowed for a more linear notation in expressing a sequence of asynchronous operations. This led to the Promises/A+ specification for JavaScript promises.

Promise-cpp is an implementation of the Promises/A+ specification for C++. It can integrate with Boost.Asio and Boost.Beast for asynchronous network programming support for low-level I/O as well as HTTP and WebSocket APIs.

This month, Richard Thomson will give us an introduction to promise-cpp and how it can be used with Boost.Asio and Boost.Beast.

This will be an online meeting, so drinks and snacks are on you!

Join the meeting here: https://meet.xmission.com/Utah-Cpp-Programmers

Watch previous topics on the Utah C++ Programmers YouTube channel:
https://www.youtube.com/@UtahCppProgrammers

Future topics: https://utahcpp.wordpress.com/future-meeting-topics/
Past topics: https://utahcpp.wordpress.com/past-meeting-topics/

Regular Monthly Meeting

Link visible for attendees

TBD based on boot up results

This will be an online meeting, so drinks and snacks are on you!

Join the meeting here: https://meet.xmission.com/Utah-Cpp-Programmers

Watch previous topics on the Utah C++ Programmers YouTube channel:
https://www.youtube.com/@UtahCppProgrammers

Future topics: https://utahcpp.wordpress.com/future-meeting-topics/
Past topics: https://utahcpp.wordpress.com/past-meeting-topics/

Past events (97)

Getting Started with Boost.Asio: Timers and Serial Ports

This event has passed