Tag: programming

New in Visual Studio 2022 – Conformance, Performance, Important Features – by Marian Luparu & Sy Brand

  • Lobby
  • Tag Archives: programming

https://cppcon.org/
---

What's New in Visual Studio 2022 - Conformance, Performance, Features of Importance - Marian Luparu & Sy Brand - CppCon 2022
https://github.com/CppCon/CppCon2022

C++20 is stabilized, C++23 is on the horizon, the state of the art in security and devops practices is advancing, and of course, we always want our programs to run faster. We've been working in all of these areas and more to make Visual Studio a better IDE for everyone, no matter what platform you're targeting.

In this talk, we'll demonstrate the last year's work across the IDE, toolchain, vcpkg, and GitHub: libfuzzer and advanced asan support for finding security holes, C++20 modules support for CMake, new views and monitors for embedded developers, how we're leveraging vcpkg for improving toolset acquisition, and more.

We'll also show how we have improved our compiler's code generation for real-world scenarios by walking you through before-and-after assembly snippets.

Come along to learn all about the latest in our tooling, and to get a peek into our plans for the future.
---

Marian Luparu

Marian is the Group Product Manager for the C++ team at Microsoft, leading the team responsible for making Visual Studio, Visual Studio Code, MSVC compiler toolset and Vcpkg more productive for C++ developers
---

Sy Brand

Sy Brand is Microsoft’s C++ Developer Advocate. Their background is in compilers and debuggers for embedded accelerators, but they’re also interested in generic library design, metaprogramming, functional-style C++, undefined behaviour, and making our communities more welcoming and inclusive.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #visualstudio

Filed under: UncategorizedTagged with: , , , , ,

Back to Basics: Declarations in C++ – Ben Saks – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Back to Basics: Declarations in Cpp - Ben Saks - CppCon 2022
https://github.com/CppCon/CppCon2022

While most C++ programmers have a general understanding of how to read and write declarations, some aspects of declarations can confuse even experienced C++ programmers. For example, why does

constexpr int *p1 = addr1;

require an initializer, but

const int *p2;

does not?

As another example, when you write a declaration such as T &&t_ref, how can you tell whether t_ref is an rvalue reference or a forwarding reference?

In this session, we explain what you need to know to answer these and many other questions about declarations. We begin with a detailed look at the structure of declarations. Along the way, we discuss the differences between type and non-type specifiers and how the compiler interprets them. We then show how a declaration’s context affects its meaning, such as
• how the ambiguous nature of dependent names in templates creates the need for the typename keyword to assist the compiler, and
• how a type deduction context alters the meaning of a reference declaration.

You’ll leave this session with a clearer understanding of how the compiler interprets declarations. Armed with this understanding, you’ll find it easier to write declarations that mean what you intend and to resolve compile-time error messages involving declarations.
---

Ben Saks

Ben Saks is the chief engineer of Saks & Associates, which offers training and consulting in C and C++ and their use in developing embedded systems. Ben represents Saks & Associates on the ISO C++ Standards committee as well as two of the committee’s study groups: SG14 (low-latency) and SG20 (education). He has spoken at industry conferences, including the C++ and System Software Summit, the Embedded Systems Conference, NDC Techtown, and CppCon, where he’s also chair of the Embedded Track and a member of the program committee. Ben previously worked as a software engineer for Vorne Industries, where he used C++ and JavaScript to develop embedded systems that help improve manufacturing productivity in factories all over the world. He’s also a contributing author on multiple Vorne patents.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

C++20’s [[likely]] Attribute – Optimizations, Pessimizations, and [[unlikely]] Consequences – by Amir Kirsh & Tomer Vromen – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

C++20’s [[likely]] Attribute - Optimizations, Pessimizations, and [[unlikely]] Consequences - CppCon
https://github.com/CppCon/CppCon2022

C++20 added the [[likely]] and [[unlikely]] attributes, which formalize existing compiler builtins. As users of the latest standards, we all want to use them in our code and get better performance - but should we?

In this talk we investigate what these attributes mean, the risk of using them incorrectly (and even the risk of using them correctly!) and whether they’re actually worth the effort. We will dive deep into branch prediction, optimizations and pessimizations, and the art of benchmarking. We will see that in C++ questions that seem simple to begin with do not get a simple answer, but an interesting one!

Participants of the talk will hopefully improve their knowledge of performance tuning, and how to focus efforts in things that really matter for performance.
---

Amir Kirsh

C++ lecturer at the Academic College of Tel-Aviv-Yaffo and Dev Advocate at Incredibuild. Previously the Chief Programmer at Comverse. Co-organizer of Core C++ conference and a member of the Israeli ISO C++ NB. Currently a visiting researcher at Stony Brook University, New-York.

Tomer Vromen

Software engineer at Dell Technologies, cppcon.digital-medium.co.uk/tag/programming/">programming in C++ for 10 years. Interested in algorithms, software development, and long distance running.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

Linux Debuginfo Formats – DWARF, ELF, dwo, dwp – What are They All? – Greg Law – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.org/
---

Linux Debuginfo Formats - DWARF, ELF, dwo, dwp - What are They All? - Greg Law - CppCon 2022
https://github.com/CppCon/CppCon2022

Many different Linux debugging tools are available - as well as the traditional debuggers (GDB, LLDB) we have checkers (Valgrind, the sanitizers), tracing tools (strace, ltrace), time-travel debuggers (rr, UDB). They all rely on debug info to map from the executable back to the source-code. Most of us know to pass the -g option to gcc to generate debuggable binaries, but there is much more to it than that.

This talk covers what exactly is in debug info, the different compiler options to control its generation, and the different kind of object files and why you might want them (e.g. split dwarf files for quicker loading). We also introduce ways to manage this information, including the new debuginfod service.

As is usual for Greg's talks: few slides, many demos.

This talk will give the information you need in order to use the available tooling more effectively, and to troubleshoot when the debug experience doesn't quite "just work".
---

Greg Law

Greg is the founder of Undo. He is a coder at heart, but likes to bridge the gap between the business and software worlds. (Sadly, these days most of Greg's coding is done on airplanes).

Greg has 25 years’ experience in the software industry and has held development and management roles at companies including the pioneering British computer firm Acorn, as well as fast-growing start ups, NexWave and Solarflare. It was at Acorn that Greg met Julian and on evenings and weekends, they invented the core technology that would eventually become UDB and LiveRecorder. Greg has overseen the company as it transitioned from his garden shed to a scaling, award-winning business.

Greg holds a PhD from City University, London and was nominated for the 2001 British Computer Society Distinguished Dissertation Award. He lives in Cambridge, UK with his wife, two children, two dogs and a cat. In his spare time, Greg catches up on email.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #linux

Filed under: UncategorizedTagged with: , , , , , , ,

C++ Class Template Argument Deduction – History, Uses, & Enabling it for Classes – Marshall Clow

  • Lobby
  • Tag Archives: programming

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

C++ Class Template Argument Deduction - History, How to Use it, and How to Enable it for Your Classes - Marshall Clow - CppCon 2022
https://github.com/CppCon/CppCon2022

In C++17, a new feature "Class Template Argument Deduction" (CTAD for short) was added to the language.

In this talk, I will show the rationale for this feature, how you can use it in your code, explain how it works and give examples of how to enable it for your classes.
I'll answer questions like:
* Why did the committee add this feature to the language?
* Why "class template argument deduction"? Why not just "template argument deduction"?
* What is a deduction guide?
* What can be done in a deduction guide?
* How do I write my own deduction guides?
* What tools are there for debugging deduction guides?

I will also talk about enhancements since C++17, and possible future directions.
---

Marshall Clow

Marshall has been coding for 40+ years; he was the lead developer on libc++ for 10 years, and the chairman of the Library working group of the C++ standards committee for 5 years. These days, he spends his time looking at "interesting problems"
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , ,

Using C++14 in an Embedded “SuperLoop” Firmware – Erik Rainey – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.org/
---

Using C++14 in an Embedded “SuperLoop” Firmware - Erik Rainey - CppCon 2022
https://github.com/CppCon/CppCon2022

This presentation covers what the execution environment of an embedded "superloop" firmware is in order to describe later why certain C++14 language and library features are used and others are not. This environment lacks many basic features and capabilities that traditional C++ programmers may think are common place but is able to be programmed in C++14 (and later) with a specific design paradigms and guidelines. Programmers with deeply embedded C experience will be familiar with some of the limitations of the environment but may find the C++ solutions quite refreshing! The talk will conclude with some comments on C++17 / C++20 features which will be quite valuable to embedded environments of all types.
---

Erik Rainey

Erik is a Senior Software Engineer at Amazon working in the Prime Air on low-level/embedded firmware written in C++ for drones. He has got more than 20 years of professional experience making 21st century technologies on embedded devices which can blink LEDs. He's also been a contributor to Khronos's OpenVX 1.0 specification.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #firmware

Filed under: UncategorizedTagged with: , , , , ,

GitHub Features Every C++ Developer Should Know – Michael Price – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.org/
---

GitHub Features Every C++ Developer Should Know - Michael Price - CppCon 2022
https://github.com/CppCon/CppCon2022

GitHub is where the world builds software, and around the world, there's a whole lot of software being written in C++. The language consistently ranks in the top languages used by repositories hosted on GitHub, according to the yearly "State of the Octoverse" report. GitHub offers solutions to problems that every professional C++ developer will encounter at some point.

Learn how to use Actions to automate tasks, IDE extensions to stay focused on your task at hand, and Codespaces to all but eliminate the hassle of configuring a development environment. Elevate your skills by going beyond the well-known version control and pull-requests features of GitHub with these features that every C++ developer should know and use.
---

Michael Price

Michael Price (he/him) is an experienced software engineer, currently working as a Product Manager with the Microsoft C++ team. His experience working at major software companies for over 15 years informs his thinking about how to enable C++ developers around the world to achieve more. His current focus is on enhancing C++ tooling to take advantage of the PaaS (platform-as-a-service) and IaaS (infrastructure-as-a-service) offerings from organizations like GitHub and Microsoft Azure.

In his spare time, Michael enjoys playing recreational soccer and spending time with his wife, two sons, and several household pets. He particularly likes playing board/card games and video games with his children.
__

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #github

Filed under: UncategorizedTagged with: , , , ,

Nobody Can Program Correctly – Lessons From 20 Years of Debugging C++ Code – Sebastian Theophil – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.org/
---

Nobody Can Program Correctly - Lessons From 20 Years of Debugging C++ Code - Sebastian Theophil - CppCon 2022
https://github.com/CppCon/CppCon2022

We like to write code but—despite our best efforts—we make mistakes. Our program will contain bugs. Sometimes, we don’t write what we mean to write, sometimes we don’t understand an aspect of our programming language and at other times we lack—or fail to consider—some critical information about our program’s system environment. As a result, our program will not behave correctly. What do we do now?

In this talk, I would like to take you through the entire debugging process, starting with a program that crashes. What do we do next? Which questions do we have to ask? What information do we need? What can we do to find the cause of the crash? Which tools can help us in this quest, and, last but not least, what can we do to make sure this bug never happens again?

Thanks to real-world examples that we have encountered — and debugged — over the years, you will learn how to reproduce, locate, understand and fix even the most difficult bugs.
---

Sebastian Theophil

Sebastian has been working at think-cell Software since its founding in 2002. In the last few years, among many other things, he has ported think-cell to run on macOS.

He is also the maintainer of the typescripten project which lets programmers call JavaScript libraries from C++ code compiled to WebAssembly in a convenient and type-safe way. He enjoys to leave this desk from time to time to talk at international C++ conferences and has previously given talks at CppNow, CppCon, and ACCU.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #debugging

Filed under: UncategorizedTagged with: , , , ,

Back to Basics – Name Lookup and Overload Resolution in C++ – by Mateusz Pusz – CppCon 2022

  • Lobby
  • Tag Archives: programming

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Back to Basics - Name Lookup and Overload Resolution in C++ - Mateusz Pusz - CppCon 2022
https://github.com/CppCon/CppCon2022

This talk explains how name lookup and overload resolution works. The language rules are not easy at all and may not be what one could expect. During the lecture, I will describe in detail how the process works, what are the pitfalls, and how to avoid them.

This talk is part of the Back to Basics track and the material will be targeted to include all skill levels. Familiarity with the C++ language is recommended however no prior knowledge of name lookup or function overloads is required.
---

Mateusz Pusz

Mateusz Pusz is a software architect, principal engineer, and security champion with more than 15 years of experience in designing, writing and maintaining C++ code for fun and living. C++ consultant, trainer, conference speaker, and evangelist focused on Modern C++. His main areas of interest and expertise are code performance, low latency, stability, and security.

Mateusz worked at Intel for 13 years, and now he is a Principal Software Engineer and the head of the C++ Competency Center at EPAM Systems. He is also a founder of Train IT that provides dedicated C++ training and consultant services to corporations around the world.

Mateusz is a contributor and an active voting member of the ISO C++ Committee (WG21) where, together with the best C++ experts in the world, he shapes the future of the C++ language. He is also a co-chair of WG21 Study Group 14 (SG14) responsible for driving performance and low latency subjects in the Committee. In 2013 Mateusz won “Bench Games 2013” – worldwide competition in the C++ language knowledge.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

Cross-Building Strategies in the Age of C++ Package Managers – Luis Caro Campos – CppCon 2022

  • Lobby
  • Tag Archives: programming

ttps://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Cross-Building Strategies in the Age of Cpp Package Managers - Luis Caro Campos - CppCon 2022
https://github.com/CppCon/CppCon2022

Embedded devices like the Raspberry Pi and NVIDIA Jetson are becoming increasingly popular for both enthusiasts and enterprise-grade applications, in particular for Machine Learning workloads that require a low-power profile. On devices that provide a native build toolchain, developers will typically face two choices: build their applications and their dependencies on the target device, which can take considerably longer than the equivalent workload on a typical PC, or carefully set-up a cross-compilation environment on a more powerful PC where using the correct dependencies (and their versions!) can become more of a challenge.

On the other hand, with macOS and Windows now officially supported on ARM processors, end users will typically expect applications to run natively for the best performance possible, rather than rely on emulation where the performance hit may negatively impact the user experience. The first step before shipping an application is building it, and cross-building existing applications can help vendors get over that first hurdle without having to wait for native hardware, especially given the current supply chain constraints.

But setting up a cross-compilation environment can be challenging and often confusing, and the build scripts for some libraries may not have considered supporting cross-building workflows. C++ package managers have gained a lot of traction in recent years. If we are already using them for our local build workflows, why not leverage their power to support cross-compiling?

This talk focuses on exploring how we leverage the concepts introduced by modern C++ package managers like Conan and vcpkg and apply them to the cross-building workflow, and the technical challenges faced by these tools to enable this. A practical example will be demonstrated where we can cross-build an existing application using familiar tooling, simplifying the workflow and saving considerable time.
---

Luis Caro Campos

Luis is a Electronics and Computer Engineer based in the UK, with previous experience as a C++ engineer in the field of Computer Vision and Robotics. Currently, he is concerned with the problem of enabling Software Development at scale: focused on the tooling and processes to support large teams of engineers in writing code. He is currently part of the Conan team at JFrog, focused on the problems of the C++ community at large.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,