{"id":2361,"date":"2024-12-17T18:28:10","date_gmt":"2024-12-17T17:28:10","guid":{"rendered":"https:\/\/becpp.org\/blog\/?p=2361"},"modified":"2024-12-17T18:28:10","modified_gmt":"2024-12-17T17:28:10","slug":"next-becpp-ug-meeting-planned-for-january-15th-2025","status":"publish","type":"post","link":"https:\/\/becpp.org\/blog\/2024\/12\/17\/next-becpp-ug-meeting-planned-for-january-15th-2025\/","title":{"rendered":"Next BeCPP UG Meeting Planned for January 15th, 2025"},"content":{"rendered":"<p>I&#8217;m happy to announce that the next meeting of the Belgian C++ Users Group is planned for <strong>Wednesday January 15th, 2025<\/strong> at 18:00 at <strong><a href=\"https:\/\/maps.app.goo.gl\/p46URN7oMtj5zfiQA\" target=\"_blank\" rel=\"noopener noreferrer\">Siemens<\/a><\/strong>.<\/p>\n<p>Siemens ( <a href=\"https:\/\/plm.sw.siemens.com\/en-US\/simcenter\/physical-testing\/testlab\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/plm.sw.siemens.com\/en-US\/simcenter\/physical-testing\/testlab\/<\/a> ) is sponsoring this event by providing the location, drinks and catering.<\/p>\n<p><center><a href=\"https:\/\/plm.sw.siemens.com\/en-US\/simcenter\/physical-testing\/testlab\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"size-full wp-image-630 alignnone\" style=\"vertical-align: middle;\" src=\"https:\/\/becpp.org\/blog\/wp-content\/uploads\/2024\/12\/Siemens.png\" alt=\"Siemens\" width=\"450\" \/><\/a><\/center>The agenda is as follows:<\/p>\n<ul>\n<li><strong><span style=\"color: #008000;\">18:00:<\/span> <\/strong>Reception with food.<\/li>\n<li><strong><span style=\"color: #008000;\">18:30:<\/span> <\/strong>Session 1: <strong>Several easy ways to increase the quality of your code, make them yours<\/strong> (Lieven de Cock)<br \/>\n<em>There are many easy-to-use tools, that help us improve the quality of our code. Nevertheless, there seem to be developers who are not familiar with those tools or don&#8217;t use them.<br \/>\nWhy ?<br \/>\nIf the machine can have our back, with quick feedback loops, we should take advantage of that.<br \/>\nThe compiler is your best friend, tweak the warning levels up. Or should we say: compilers are your best friends.<br \/>\nThe next step is static analyzers, once again have the machine inspect your code, no personal preferences to discuss in code reviews, the machine won&#8217;t budge or become emotional. We will look at cppcheck and clang-tidy.<br \/>\nAlso at run time we have a few friends to help us out, the sanitizers do an excellent job at finding issues, we will look at valgrind, UBSAN, ASAN, TSAN.<br \/>\nThere are many ways to use these tools, we will look at a way, but there are other ways, find your way in case you don&#8217;t like the presented way, as long as you start using the tools.<br \/>\nWe will also look at a way to integrate these tools into the cmake\/ctest eco-system.<\/em><\/li>\n<li><strong><span style=\"color: #008000;\">19:30:<\/span> <\/strong>Break<\/li>\n<li><strong><span style=\"color: #008000;\">19:45:<\/span> <\/strong>Session 2: <strong>Why use coroutines for asynchronous applications?<\/strong> (Johan Vanslembrouck)<br \/>\n<em>\u201cThe Coroutines TS provided a wonderful way to write asynchronous code as if you were writing synchronous code. You just need to sprinkle co_await at appropriate points and the compiler takes care of suspending the coroutine, preserving state across suspend-points and resuming execution of the coroutine later when the operation completes.\u201d (https:\/\/lewissbaker.github.io\/2020\/05\/11\/understanding_symmetric_transfer)<br \/>\nAn application developer no longer must cut an application into small pieces that do not wait\/block internally and that must be stitched together, e.g. using a chain of callback functions or state machines. The C++20 compiler does all the hard work for you now, even for functions with a complex control flow. As a result, you can develop applications much faster, and they are more maintainable than without the use of coroutines.<br \/>\nThe presentation will discuss several example programs, comparing a synchronous version with an asynchronous version and a coroutine version. By the end of presentation, I hope you will be convinced that coroutines are a valuable addition to C++ to write responsive, asynchronous applications.<br \/>\nThe presentation includes a short introduction to coroutines; no in-depth a priori knowledge of coroutines is necessary to follow the presentation.<\/em><\/li>\n<li><strong><span style=\"color: #008000;\">20:45:<\/span> <\/strong>Introduction to Siemens, followed by a drink.<\/li>\n<\/ul>\n<p>We will be giving away two copies of <a href=\"https:\/\/amzn.to\/3SZqClh\" target=\"_blank\" rel=\"noopener noreferrer\">Professional C++, 6th Edition<\/a>.<br \/>\n<a href=\"https:\/\/amzn.to\/3SZqClh\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"size-full wp-image-1003 aligncenter\" src=\"https:\/\/becpp.org\/blog\/wp-content\/uploads\/2024\/03\/ProCpp_6_Cover-Small.jpg\" alt=\"Professional C++, 6th Edition\" width=\"100\" \/><\/a><\/p>\n<p>We will also give away two copies of <a href=\"https:\/\/www.amazon.com\/Beginning-C-23-Beginner-Pro\/dp\/1484293428\" target=\"_blank\" rel=\"noopener noreferrer\">Beginning C++23, From Beginner to Pro<\/a>.<br \/>\n<a href=\"https:\/\/www.amazon.com\/Beginning-C-23-Beginner-Pro\/dp\/1484293428\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"size-full wp-image-1003 aligncenter\" src=\"https:\/\/becpp.org\/blog\/wp-content\/uploads\/2024\/03\/Beginning_Cpp23.jpg\" alt=\"Beginning C++23, From Beginner to Pro\" width=\"100\" \/><\/a><\/p>\n<p>The event is <strong><span style=\"color: #ff0000;\">free<\/span><\/strong> for everyone, but you need to <strong><a href=\"https:\/\/becpp-january-2025.eventbrite.com\/\">register for it<\/a><\/strong>.<\/p>\n<p>There are 50 seats available for this event.<\/p>\n<p style=\"text-align: center; background-color: #ffff99; padding: 5px; margin: 10px;\"><em><span style=\"color: #000000;\"><strong>Note:<\/strong><\/span><strong><span style=\"color: #ff0000;\"> The deadline for registrations is January 12th, 2025!<\/span><\/strong><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m happy to announce that the next meeting of the Belgian C++ Users Group is planned for Wednesday January 15th, 2025 at 18:00 at Siemens. Siemens ( https:\/\/plm.sw.siemens.com\/en-US\/simcenter\/physical-testing\/testlab\/ ) is sponsoring this event by providing the location, drinks and catering. The agenda is as follows: 18:00: Reception with food. 18:30: Session 1: Several easy ways [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[9],"tags":[],"class_list":["post-2361","post","type-post","status-publish","format-standard","hentry","category-events"],"_links":{"self":[{"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts\/2361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/comments?post=2361"}],"version-history":[{"count":1,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts\/2361\/revisions"}],"predecessor-version":[{"id":2364,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts\/2361\/revisions\/2364"}],"wp:attachment":[{"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/media?parent=2361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/categories?post=2361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/tags?post=2361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}