Argument dependent lookup (ADL): name taxonomy, customization points & use cases - Kostas Kyrimis

Описание к видео Argument dependent lookup (ADL): name taxonomy, customization points & use cases - Kostas Kyrimis

http://CppCon.org
Discussion & Comments:   / cpp  
Presentation Materials: https://github.com/CppCon/CppCon2019


Argument dependent lookup (ADL): introduction in name taxonomy, customization points and use cases

This talk introduces argument dependent lookup (ADL); name taxonomy; and customisation points in order to demonstrate and understand the peculiarities and the process of looking up names with ADL. Furthermore, this talk will demonstrate and discuss argument dependent lookup (ADL) thoroughly in the context of templates.

What is Argument dependent lookup (ADL)?

Argument dependent lookup (ADL) is a C++ feature that extends a name’s* lookup set by associating it with “extra” namespaces. The C++ standard mandates name taxonomy in a nonintuitive way that makes it difficult for young programmers to understand and use this feature. On the other hand, in advanced use cases of templates even experienced programmers sometimes struggle to reason about their code.

Why argument dependent lookup (ADL)?

It greatly enhances the usability of templates by allowing the compiler to extend the overload resolution of a template call allowing it look up more declarations which otherwise would be hidden from the compiler.

Library authors who design generic code don’t know firsthand how the users intent to use the library. Therefore, it’s essential to allow clients to customise the behaviour of their generic code on cases where they believe a more specialised implementation is desired. For instance, a qualified call to std::swap() is condemned to bypass any user defined overload of swap().

*The precise definition will be given in the name taxonomy category section of the outline


Kostas Kyrimis

Kostas Kyrimis is a software engineer who is working on ComputeCpp; Codeplay’s implementation of the Khronos Group open standard SYCL for heterogenous computing. He advocates modern C++ practices, appreciates generic programming and algorithms and he is a supporter of expressive, clean and scalable code. Furthermore, Kostas, holds a BSc and MSc in Computer Science and on his free time he enjoys travelling, snowboarding and strength training.

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com

*-----*
Register Now For CppCon 2022: https://cppcon.org/registration/
*-----*

Комментарии

Информация по комментариям в разработке