Can we fix the following inconsistency in #CPlusPlus: https://compiler-explorer.com/z/qsYeTncE4? A conversion operator is sufficient to call wrapped function pointers. But it does not work for wrapped callable objects. And that's even though `wrapper` in the above example has the callable type in its associated namespaces (ADL). ADL was introduced to make operators work. I patched my #GCC to make it work and I like it.

#WG21 #cpp29 #cpp

Compiler Explorer - C++ (x86-64 gcc (trunk))

template <typename T> struct wrapper { T value; constexpr operator const T&() const { return value; } #if 0 constexpr decltype(auto) operator()(auto&&... args) { return value(args...); } #endif }; int f1(int); auto f2 = [](int x) { return f1(x); }; int test1() { return wrapper{f1}(1); } int test2() { return wrapper{f2}(1); }

@mkretz
"We violently agree" 😸

But P3802 will certainly have to wait until #cpp29 to become a portable C++ feature for apparent procedural reasons: it appeared *after* #cpp26 feature freeze, was never discussed in EWG, nor made it into a plenary vote. AFAICS, the mistake of #cpp0x will not be made again.

C++29 will be postponed to C++31

Otherwise we'll miss C++64, which has to integrate a fully functional C64 emulator in the standard library, called Commodore++64 (or C++64 for short)

#cpp #cpp29 #commodore64

We have released a new CppCon 2023 Video!

File I/O for Game Developers: Past, Present, and Future with C++ – Guy Davidson – CppCon 2023
https://youtu.be/1CdduHa-KgA
#cpp #cpp29 #Files #GameDevelopment #Hardware #IO #Windows

File I/O for Game Developers: Past, Present, and Future with C++ - Guy Davidson - CppCon 2023

YouTube

We have released a new CppCon 2023 Video!

Customization Methods: Connecting User and Library Code – Inbal Levi
https://youtu.be/mdh9GLWXWyY
#Concepts #cpp #cpp26 #cpp29 #CustomizationPoints #Interfaces #Libraries #SoftwareDesign #Tooling

Customization Methods: Connecting User and C++ Library Code - Inbal Levi - CppCon 2023

YouTube