{"id":1779,"date":"2019-12-17T20:27:17","date_gmt":"2019-12-17T19:27:17","guid":{"rendered":"http:\/\/becpp.org\/blog\/?p=1779"},"modified":"2020-02-13T09:05:52","modified_gmt":"2020-02-13T08:05:52","slug":"next-becpp-ug-meeting-planned-for-january-29th-2020","status":"publish","type":"post","link":"https:\/\/becpp.org\/blog\/2019\/12\/17\/next-becpp-ug-meeting-planned-for-january-29th-2020\/","title":{"rendered":"Next BeCPP UG Meeting Planned For January 29th, 2020"},"content":{"rendered":"<p>The next meeting of the Belgian C++ Users Group is planned for <strong>Wednesday January 29th, 2020<\/strong> at 18:00 at <strong><a href=\"https:\/\/goo.gl\/maps\/RojeBS89SMSqLUQ57\" target=\"_blank\" rel=\"noopener noreferrer\">OMP<\/a><\/strong>.<\/p>\n<p>OMP ( <a href=\"https:\/\/www.omp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.omp.com\/<\/a> ) is sponsoring this event by providing the location, drinks and catering.<\/p>\n<p><a href=\"https:\/\/www.omp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-630\" src=\"https:\/\/becpp.org\/blog\/wp-content\/uploads\/2019\/12\/omp-logo.png\" alt=\"OMP Logo\" width=\"250\"><\/a><\/p>\n<p>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>Coroutines in C++20<\/strong> (Johan Vanslembrouck)<br \/>\n<em>A coroutine is a function that can suspend execution to be resumed later. Coroutines allow for sequential code that executes asynchronously (e.g. to handle non-blocking I\/O without explicit callbacks), and also supports algorithms on lazy-computed infinite sequences and other uses. Unlike most other languages that support coroutines, C++ coroutines are open and not tied to any particular runtime or generator type and allow libraries to imbue coroutines with meaning, whereas the compiler is responsible solely for efficient transformation of a function to a state machine that is the foundation of the coroutine.<br \/>\nThe presentation will explain the C++ coroutines mechanism, i.e. code generated by the compiler and the code to be written by a coroutine developer. The presentation includes examples of an client-server application using Boost ASIO in combination with C++ 20 coroutines and a producer-consumer queue implemented with and without coroutines.<\/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>The evolution of the C++ Lambda<\/strong> (Lieven de Cock)<br \/>\n<em>Before C++11, we had to write function objects (functors) or free standing functions to pass as the callable to several algorithms (for example: for_each). The drawback was that we were introducing objects in a bigger scope than actually needed, and it can be considered as rather some boilerplate.<br \/>\nWith the introduction of the lambda we can write (little) callables at the moment we need them. Over the years (or better said over the new standards) the lambdas gained extra power and became more user friendly. In this talk we will have a look on the evolution of the lambda since its birth in C++11.<\/em><\/li>\n<li><strong><span style=\"color: #008000;\">20:45:<\/span> <\/strong>Introduction to OMP, followed by a drink.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/amzn.to\/2JjvkWe\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1003 aligncenter\" src=\"https:\/\/becpp.org\/blog\/wp-content\/uploads\/2018\/06\/pro_cpp_4th.jpg\" alt=\"Professional C++, 4th Edition\" width=\"100\" height=\"125\"><\/a><br \/>\nWe will be giving away 2 copies of <a href=\"https:\/\/amzn.to\/2JjvkWe\" target=\"_blank\" rel=\"noopener noreferrer\">Professional C++, the 4th Edition<\/a>.<\/p>\n<p><a href=\"https:\/\/www.apress.com\/gp\/book\/9781484249222\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"size-full wp-image-1003 aligncenter\" src=\"https:\/\/becpp.org\/blog\/wp-content\/uploads\/2019\/09\/c17-quick-ref.jpg\" alt=\"C++17 Standard Library Quick Reference\" width=\"100\"><\/a><br \/>\nWe will also give away a copy of <a href=\"https:\/\/www.apress.com\/gp\/book\/9781484249222\" target=\"_blank\" rel=\"noopener noreferrer\">C++17 Standard Library Quick Reference<\/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-2020.eventbrite.com\/\">register for it<\/a><\/strong>.<\/p>\n<p>There are 100 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 26th, 2020!<\/span><\/strong><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The next meeting of the Belgian C++ Users Group is planned for Wednesday January 29th, 2020 at 18:00 at OMP. OMP ( https:\/\/www.omp.com\/ ) 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: Coroutines in C++20 (Johan Vanslembrouck) A coroutine is [&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":[11,63,64,60,65],"class_list":["post-1779","post","type-post","status-publish","format-standard","hentry","category-events","tag-c11","tag-c14","tag-c17","tag-c20","tag-coroutines"],"_links":{"self":[{"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts\/1779","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=1779"}],"version-history":[{"count":5,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts\/1779\/revisions"}],"predecessor-version":[{"id":1791,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/posts\/1779\/revisions\/1791"}],"wp:attachment":[{"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/media?parent=1779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/categories?post=1779"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/becpp.org\/blog\/wp-json\/wp\/v2\/tags?post=1779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}